{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.7.10","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Importing Libraries","metadata":{}},{"cell_type":"code","source":"! pip install biosppy   ","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:51:30.919020Z","iopub.execute_input":"2021-09-02T17:51:30.919509Z","iopub.status.idle":"2021-09-02T17:51:43.693324Z","shell.execute_reply.started":"2021-09-02T17:51:30.919391Z","shell.execute_reply":"2021-09-02T17:51:43.692151Z"},"trusted":true},"execution_count":1,"outputs":[{"name":"stdout","text":"Collecting biosppy\n  Downloading biosppy-0.7.3.tar.gz (85 kB)\n\u001b[K     |████████████████████████████████| 85 kB 344 kB/s eta 0:00:01\n\u001b[?25hCollecting bidict\n  Downloading bidict-0.21.2-py2.py3-none-any.whl (37 kB)\nRequirement already satisfied: h5py in /opt/conda/lib/python3.7/site-packages (from biosppy) (2.10.0)\nRequirement already satisfied: matplotlib in /opt/conda/lib/python3.7/site-packages (from biosppy) (3.4.2)\nRequirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.19.5)\nRequirement already satisfied: scikit-learn in /opt/conda/lib/python3.7/site-packages (from biosppy) (0.23.2)\nRequirement already satisfied: scipy in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.6.3)\nRequirement already satisfied: shortuuid in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.0.1)\nRequirement already satisfied: six in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.15.0)\nRequirement already satisfied: joblib in /opt/conda/lib/python3.7/site-packages (from biosppy) (1.0.1)\nRequirement already satisfied: opencv-python in /opt/conda/lib/python3.7/site-packages (from biosppy) (4.5.2.54)\nRequirement already satisfied: python-dateutil>=2.7 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (2.8.1)\nRequirement already satisfied: pyparsing>=2.2.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (2.4.7)\nRequirement already satisfied: pillow>=6.2.0 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (8.2.0)\nRequirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (1.3.1)\nRequirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.7/site-packages (from matplotlib->biosppy) (0.10.0)\nRequirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.7/site-packages (from scikit-learn->biosppy) (2.1.0)\nBuilding wheels for collected packages: biosppy\n  Building wheel for biosppy (setup.py) ... \u001b[?25ldone\n\u001b[?25h  Created wheel for biosppy: filename=biosppy-0.7.3-py2.py3-none-any.whl size=95409 sha256=fae17349d949446e5a6df73e7da865d6377cab803b2e7e4981cdefe2b2f99586\n  Stored in directory: /root/.cache/pip/wheels/2f/4f/8f/28b2adc462d7e37245507324f4817ce1c64ef2464f099f4f0b\nSuccessfully built biosppy\nInstalling collected packages: bidict, biosppy\nSuccessfully installed bidict-0.21.2 biosppy-0.7.3\n\u001b[33mWARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv\u001b[0m\n","output_type":"stream"}]},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport tensorflow as tf\nimport wfdb\nimport os                                                                                                  \nimport gc\nimport scipy       \nimport sklearn\nfrom pathlib import Path\nfrom sklearn.utils import shuffle\nfrom sklearn.manifold import TSNE\nimport seaborn as sns\nfrom sklearn import preprocessing\nimport shutil\nimport math\nimport random\nfrom scipy.spatial import distance\nfrom biosppy.signals import ecg\nfrom scipy.interpolate import PchipInterpolator","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:51:43.698129Z","iopub.execute_input":"2021-09-02T17:51:43.698433Z","iopub.status.idle":"2021-09-02T17:51:50.606494Z","shell.execute_reply.started":"2021-09-02T17:51:43.698402Z","shell.execute_reply":"2021-09-02T17:51:50.605548Z"},"trusted":true},"execution_count":2,"outputs":[]},{"cell_type":"code","source":"try:\n    tpu = tf.distribute.cluster_resolver.TPUClusterResolver()  # TPU detection\n    print('Running on TPU ', tpu.cluster_spec().as_dict()['worker'])\nexcept ValueError:\n    raise BaseException('ERROR: Not connected to a TPU runtime; please see the previous cell in this notebook for instructions!')\n\ntf.config.experimental_connect_to_cluster(tpu)\ntf.tpu.experimental.initialize_tpu_system(tpu)\ntpu_strategy = tf.distribute.experimental.TPUStrategy(tpu)","metadata":{"execution":{"iopub.status.busy":"2021-09-02T15:51:31.265748Z","iopub.execute_input":"2021-09-02T15:51:31.266153Z","iopub.status.idle":"2021-09-02T15:51:37.5233Z","shell.execute_reply.started":"2021-09-02T15:51:31.266079Z","shell.execute_reply":"2021-09-02T15:51:37.52218Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Dataset Creation","metadata":{}},{"cell_type":"code","source":"###### Constants\nFS = 500\nW_LEN = 355\nW_LEN_1_4 = 355 // 4\nW_LEN_3_4 = 3 * (355 // 4)\n\n###### Function to Segment Signals\n\ndef segmentSignals(signal, r_peaks_annot, normalization=True, person_id= None, file_id=None):\n    \n    \"\"\"\n    Segments signals based on the detected R-Peak\n    Args:\n        signal (numpy array): input signal\n        r_peaks_annot (int []): r-peak locations.\n        normalization (bool, optional): apply z-normalization or not? . Defaults to True.\n        person_id ([type], optional): [description]. Defaults to None.\n        file_id ([type], optional): [description]. Defaults to None.\n    Returns:\n            [tuple(numpy array,numpy array)]: segmented signals and refined r-peaks\n    \"\"\"\n    def refine_rpeaks(signal, r_peaks):\n        \"\"\"\n        Refines the detected R-peaks. If the R-peak is slightly shifted, this assigns the \n        highest point R-peak.\n        Args:\n            signal (numpy array): input signal\n            r_peaks (int []): list of detected r-peaks\n        Returns:\n            [numpy array]: refined r-peaks\n        \"\"\"\n        r_peaks2 = np.array(r_peaks)            # make a copy\n        for i in range(len(r_peaks)):\n            r = r_peaks[i]          # current R-peak\n            small_segment = signal[max(0,r-100):min(len(signal),r+100)]         # consider the neighboring segment of R-peak\n            r_peaks2[i] = np.argmax(small_segment) - 100 + r_peaks[i]           # picking the highest point\n            r_peaks2[i] = min(r_peaks2[i],len(signal))                          # the detected R-peak shouldn't be outside the signal\n            r_peaks2[i] = max(r_peaks2[i],0)                                    # checking if it goes before zero    \n        return r_peaks2                     # returning the refined r-peak list\n    \n    segmented_signals = []                      # array containing the segmented beats\n    \n    r_peaks = np.array(r_peaks_annot)\n\n    r_peaks = refine_rpeaks(signal, r_peaks)\n    skip_len = 2 # Parameter to specify number of r_peaks in one signal\n    max_seq_len = 640 # Parameter to specify maximum sequence length\n    \n    for r_curr in range(0,int(r_peaks.shape[0]-(skip_len-1)),skip_len):\n        if ((r_peaks[r_curr]-W_LEN_1_4)<0) or ((r_peaks[r_curr+(skip_len-1)]+W_LEN_3_4)>=len(signal)):           # not enough signal to segment\n            continue\n        segmented_signal = np.array(signal[r_peaks[r_curr]-W_LEN_1_4:r_peaks[r_curr+(skip_len-1)]+W_LEN_3_4])        # segmenting a heartbeat\n        segmented_signal = list(segmented_signal)\n        #print(segmented_signal.shape)\n        \n        if(len(segmented_signal) < 640):\n            for m in range(int(640-len(segmented_signal))): # Zero Padding\n                segmented_signal.append(0)\n        else:\n            segmented_signal = (segmented_signal[:int(max_seq_len)])\n            \n        segmented_signal = np.array(segmented_signal)\n        \n        if(segmented_signal.shape != (640,1)):    \n            segmented_signal = np.reshape(segmented_signal,(640,1))\n            \n        if (normalization):             # Z-score normalization\n            if abs(np.std(segmented_signal))<1e-6:          # flat line ECG, will cause zero division error\n                continue\n            segmented_signal = (segmented_signal - np.mean(segmented_signal)) / np.std(segmented_signal)            \n              \n        #if not np.isnan(segmented_signal).any():                    # checking for nan, this will never happen\n            segmented_signals.append(segmented_signal)\n\n    return segmented_signals,r_peaks           # returning the segmented signals and the refined r-peaks\n\n###### Function to Read Records\n\ndef read_rec(rec_path):\n\n    \"\"\" \n    Function to read record and return Segmented Signals\n\n    INPUTS:-\n    1) rec_path : Path of the Record\n\n    OUTPUTS:-\n    1) seg_sigs : Final Segmented Signals\n\n    \"\"\"\n    number_of_peaks = 2 # For extracting the required number of peaks                                    \n    full_rec = (wfdb.rdrecord(rec_path)).p_signal[:,0] # Entire Record - Taking Signal from Lead-1\n\n    f = PchipInterpolator(np.arange(int(full_rec.shape[0])),full_rec) # Fitting Interpolation Function\n    num_samples = int(full_rec.shape[0]) # Total Samples in 1000Hz Signal\n    num_samples_final = int(num_samples*(500/1000))\n    x_samp = (np.arange(num_samples)*(1000/500))[:num_samples_final] # Fixing Interpolation Input Values\n    full_rec_interp = f(x_samp)  # Intepolating Values \n    \n    r_peaks_init = ecg.hamilton_segmenter(full_rec_interp,500)[0] # R-Peak Segmentation and input is the signal frequency of 500Hz in this case\n    final_peak_index = r_peaks_init[int(r_peaks_init.shape[0] - int((r_peaks_init.shape[0]%number_of_peaks)))-1]\n    r_peaks_final = r_peaks_init[:final_peak_index] # Final Number of R_Peaks\n    full_rec_final = full_rec_interp[:int(r_peaks_final[-1]+W_LEN)] # Final Sequence\n    seg_sigs, r_peaks_ref = segmentSignals(full_rec_final,list(r_peaks_final)) # Final Signal Segmentation\n\n    return seg_sigs","metadata":{"execution":{"iopub.status.busy":"2021-07-30T05:12:13.555845Z","iopub.execute_input":"2021-07-30T05:12:13.556249Z","iopub.status.idle":"2021-07-30T05:12:13.576782Z","shell.execute_reply.started":"2021-07-30T05:12:13.556202Z","shell.execute_reply":"2021-07-30T05:12:13.575714Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"###### Extracting List of the Elements with Two Sessions \ndir = '../input/ptb-dataset/ptb-diagnostic-ecg-database-1.0.0'\ntotal_index = 0\n#subjects_with_two = []\nsubjects = []\n\nfor item in np.sort(os.listdir(dir)):\n    #print('----------------------------------')\n    #print(item)\n    dir_sub = os.path.join(dir,item)\n    if(os.path.isdir(dir_sub)):\n        #ubjects.append(item)\n        #print(len(os.listdir(dir_sub))//3)\n        if(len(os.listdir(dir_sub))//3 >= 2):\n            subjects.append(item)\n            #total_index = total_index+1   \n            #print(item)\n        #    subjects_with_two.append(item)\n    #print('----------------------------------')\n\n#print(total_index)\n#print(subjects_with_two)\n\n#subjects = shuffle(subjects)[:100] # Shuffling and Taking 100 Subjects \n#print(subjects)\n\nprint(subjects)\nprint(len(subjects))","metadata":{"execution":{"iopub.status.busy":"2021-07-30T05:12:43.9409Z","iopub.execute_input":"2021-07-30T05:12:43.941435Z","iopub.status.idle":"2021-07-30T05:12:44.953928Z","shell.execute_reply.started":"2021-07-30T05:12:43.941391Z","shell.execute_reply":"2021-07-30T05:12:44.952981Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"###### Creation of Numpy Arrays \nmain_dir = '../input/ptb-dataset/ptb-diagnostic-ecg-database-1.0.0'\n\nX_train = []\nX_dev = []\ny_train = []\ny_dev = []\n\ncurrent_index = 0\n\n#for person_index,person_folder in enumerate(list(np.sort(os.listdir(main_dir)))):\n \nfor person_folder in np.sort(subjects):\n    \n    #if(current_index <= 231): # Taking 80% of the subjects for training \n    \n    person_folder_path = os.path.join(main_dir,person_folder)\n    person_folder_items = (list(np.sort(os.listdir(person_folder_path))))\n\n    for file_idx in range(0,len(person_folder_items),3):\n        file_path_list = str((os.path.join(person_folder_path,person_folder_items[file_idx])))\n        file_num = file_idx//3\n\n        rec_path = ''\n        for item_index in range(0,(len(file_path_list)-4)):\n            rec_path = rec_path+str(file_path_list[item_index])\n\n        seg_signal_current = read_rec(rec_path) # Extracting Records\n\n        # Division across Time\n        #for k in range(len(seg_signal_current)):\n\n        #    if(k <= np.round(len(seg_signal_current)*0.5)):\n        #        X_train.append(seg_signal_current[k])\n        #        y_train.append(current_index)\n\n        #    else:\n        #        X_dev.append(seg_signal_current[k])\n        #        y_dev.append(current_index)\n\n        if(file_num == 0):\n            for k in range(len(seg_signal_current)):\n                X_train.append(seg_signal_current[k])\n                y_train.append(current_index)\n\n        if(file_num == 1):\n            for k in range(len(seg_signal_current)):\n                X_dev.append(seg_signal_current[k])\n                y_dev.append(current_index)\n\n    current_index = current_index+1\n    print('Processed for Person - '+str(current_index))\n    \n###### Shuffling Numpy Arrays\nX_train,y_train = shuffle(X_train,y_train)\nX_dev,y_dev = shuffle(X_dev,y_dev)\n\nprint(np.array(X_train).shape)\nprint(np.array(y_train).shape)\nprint(np.array(X_dev).shape)\nprint(np.array(y_dev).shape)","metadata":{"execution":{"iopub.status.busy":"2021-07-30T05:14:49.679438Z","iopub.execute_input":"2021-07-30T05:14:49.679823Z","iopub.status.idle":"2021-07-30T05:16:28.355333Z","shell.execute_reply.started":"2021-07-30T05:14:49.679791Z","shell.execute_reply":"2021-07-30T05:16:28.354351Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"###### Saving Numpy Arrays\nnp.savez_compressed('X_train_PTB_Baseline.npz',np.array(X_train))\nnp.savez_compressed('y_train_PTB_Baseline.npz',np.array(y_train))\nnp.savez_compressed('X_dev_PTB_Baseline.npz',np.array(X_dev))\nnp.savez_compressed('y_dev_PTB_Baseline.npz',np.array(y_dev)) ","metadata":{"execution":{"iopub.status.busy":"2021-07-30T05:17:37.24043Z","iopub.execute_input":"2021-07-30T05:17:37.240774Z","iopub.status.idle":"2021-07-30T05:17:40.66729Z","shell.execute_reply.started":"2021-07-30T05:17:37.240745Z","shell.execute_reply":"2021-07-30T05:17:40.666264Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"##### Loading Dataset\nX_train = np.array(np.load('../input/ptb-baseline/X_train_PTB_Baseline.npz',allow_pickle=True)['arr_0'],dtype=np.float16)\nX_dev = np.array(np.load('../input/ptb-baseline/X_dev_PTB_Baseline.npz',allow_pickle=True)['arr_0'],dtype=np.float16)\ny_train = np.load('../input/ptb-baseline/y_train_PTB_Baseline.npz',allow_pickle=True)['arr_0']\ny_dev = np.load('../input/ptb-baseline/y_dev_PTB_Baseline.npz',allow_pickle=True)['arr_0']","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:52:03.132167Z","iopub.execute_input":"2021-09-02T17:52:03.132732Z","iopub.status.idle":"2021-09-02T17:52:05.412037Z","shell.execute_reply.started":"2021-09-02T17:52:03.132693Z","shell.execute_reply":"2021-09-02T17:52:05.411037Z"},"trusted":true},"execution_count":3,"outputs":[]},{"cell_type":"code","source":"##### Converting Labels to Categorical Format\ny_train_ohot = tf.keras.utils.to_categorical(y_train)\ny_dev_ohot = tf.keras.utils.to_categorical(y_dev)","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:52:05.413574Z","iopub.execute_input":"2021-09-02T17:52:05.413975Z","iopub.status.idle":"2021-09-02T17:52:05.423212Z","shell.execute_reply.started":"2021-09-02T17:52:05.413909Z","shell.execute_reply":"2021-09-02T17:52:05.422252Z"},"trusted":true},"execution_count":4,"outputs":[]},{"cell_type":"code","source":"##### Testing \nprint(y_dev[:10])\n#print(np.array(X_train).shape)\n#print(np.array(y_train).shape)\n#print(np.array(X_dev).shape)\n#print(np.array(y_dev).shape)\n\n#for i in range(2):\n#    plt.plot(np.arange(640),X_train[i])\n#    plt.show()","metadata":{"execution":{"iopub.status.busy":"2021-07-30T05:17:51.440546Z","iopub.execute_input":"2021-07-30T05:17:51.440927Z","iopub.status.idle":"2021-07-30T05:17:51.446324Z","shell.execute_reply.started":"2021-07-30T05:17:51.440896Z","shell.execute_reply":"2021-07-30T05:17:51.445248Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Model Making","metadata":{}},{"cell_type":"markdown","source":"## Self-Calibrated Convolution","metadata":{}},{"cell_type":"code","source":"###### Model Development : Self-Calibrated \n\n##### Defining Self-Calibrated Block\n\nrate_regularizer = 1e-5\nclass self_cal_Conv1D(tf.keras.layers.Layer):\n\n    \"\"\" \n    This is inherited class from keras.layers and shall be instatition of self-calibrated convolutions\n    \"\"\"\n    \n    def __init__(self,num_filters,kernel_size,num_features):\n    \n        #### Defining Essentials\n        super().__init__()\n        self.num_filters = num_filters\n        self.kernel_size = kernel_size\n        self.num_features = num_features # Number of Channels in Input\n\n        #### Defining Layers\n        self.conv2 = tf.keras.layers.Conv1D(self.num_features/2,self.kernel_size,padding='same',kernel_regularizer=tf.keras.regularizers.l2(rate_regularizer),dtype='float32',activation='relu')\n        self.conv3 = tf.keras.layers.Conv1D(self.num_features/2,self.kernel_size,padding='same',kernel_regularizer=tf.keras.regularizers.l2(rate_regularizer),dtype='float32',activation='relu')\n        self.conv4 = tf.keras.layers.Conv1D(self.num_filters/2,self.kernel_size,padding='same',activation='relu',kernel_regularizer=tf.keras.regularizers.l2(rate_regularizer),dtype='float32')\n        self.conv1 = tf.keras.layers.Conv1D(self.num_filters/2,self.kernel_size,padding='same',activation='relu',kernel_regularizer=tf.keras.regularizers.l2(rate_regularizer),dtype='float32')\n        self.upsample = tf.keras.layers.Conv1DTranspose(filters=int(self.num_features/2),kernel_size=4,strides=4)\n        #self.attention_layer = tf.keras.layers.Attention()\n        #self.lstm = tf.keras.layers.LSTM(int(self.num_features/2),return_sequences=True)\n        #self.layernorm = tf.keras.layers.LayerNormalization()\n    \n    def get_config(self):\n\n        config = super().get_config().copy()\n        config.update({\n            'num_filters': self.num_filters,\n            'kernel_size': self.kernel_size,\n            'num_features': self.num_features\n        })\n        return config\n    \n    \n    def call(self,X):\n       \n        \"\"\"\n          INPUTS : 1) X - Input Tensor of shape (batch_size,sequence_length,num_features)\n          OUTPUTS : 1) X - Output Tensor of shape (batch_size,sequence_length,num_features)\n        \"\"\"\n        \n        #### Dimension Extraction\n        b_s = (X.shape)[0] \n        seq_len = (X.shape)[1]\n        num_features = (X.shape)[2]\n        \n        #### Channel-Wise Division\n        X_attention = X[:,:,0:int(self.num_features/2)]\n        X_global = X[:,:,int(self.num_features/2):]\n        \n        #### Self Calibration Block\n\n        ### Local Feature Detection\n\n        ## Down-Sampling\n        #x1 = X_attention[:,0:int(seq_len/5),:]\n        #x2 = X_attention[:,int(seq_len/5):int(seq_len*(2/5)),:]\n        #x3 = X_attention[:,int(seq_len*(2/5)):int(seq_len*(3/5)),:]\n        #x4 = X_attention[:,int(seq_len*(3/5)):int(seq_len*(4/5)),:]\n        #x5 = X_attention[:,int(seq_len*(4/5)):seq_len,:]\n        x_down_sampled = tf.keras.layers.AveragePooling1D(pool_size=4,strides=4)(X_attention)\n        \n        ## Convoluting Down Sampled Sequence \n        #x1 = self.conv2(x1)\n        #x2 = self.conv2(x2)\n        #x3 = self.conv2(x3)\n        #x4 = self.conv2(x4)\n        #x5 = self.conv2(x5)\n        x_down_conv = self.conv2(x_down_sampled)\n        #x_down_feature = self.attention_layer([x_down_sampled,x_down_sampled])\n        #x_down_feature = self.lstm(x_down_sampled)\n        #x_down_feature = self.layernorm(x_down_feature)\n        \n        ## Up-Sampling\n        x_down_upsampled = self.upsample(x_down_conv)   \n        #X_local_upsampled = tf.keras.layers.concatenate([x1,x2,x3,x4,x5],axis=1)\n\n        ## Local-CAM\n        X_local = X_attention + x_down_upsampled  #X_local_upsampled\n\n        ## Local Importance \n        X_2 = tf.keras.activations.sigmoid(X_local)\n\n        ### Self-Calibration\n\n        ## Global Convolution\n        X_3 = self.conv3(X_attention)\n\n        ## Attention Determination\n        X_attention = tf.math.multiply(X_2,X_3)\n\n        #### Self-Calibration Feature Extraction\n        X_4 = self.conv4(X_attention)\n\n        #### Normal Feature Extraction\n        X_1 = self.conv1(X_global)\n\n        #### Concatenating and Returning Output\n        return (tf.keras.layers.concatenate([X_1,X_4],axis=2))","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:52:14.537157Z","iopub.execute_input":"2021-09-02T17:52:14.537831Z","iopub.status.idle":"2021-09-02T17:52:14.728208Z","shell.execute_reply.started":"2021-09-02T17:52:14.537797Z","shell.execute_reply":"2021-09-02T17:52:14.727200Z"},"trusted":true},"execution_count":5,"outputs":[]},{"cell_type":"markdown","source":"## Transformer","metadata":{}},{"cell_type":"code","source":"def get_angles(pos, i, d_model):\n    angle_rates = 1 / np.power(10000, (2 * (i//2)) / np.float32(d_model))\n    return pos * angle_rates\n\ndef positional_encoding(position, d_model):\n    angle_rads = get_angles(np.arange(position)[:, np.newaxis],\n                          np.arange(d_model)[np.newaxis, :],\n                          d_model)\n  \n  # apply sin to even indices in the array; 2i\n    angle_rads[:, 0::2] = np.sin(angle_rads[:, 0::2])\n  \n  # apply cos to odd indices in the array; 2i+1\n    angle_rads[:, 1::2] = np.cos(angle_rads[:, 1::2])\n    \n    pos_encoding = angle_rads[np.newaxis, ...]\n    \n    return tf.cast(pos_encoding, dtype=tf.float32)\n\ndef create_padding_mask(seq):\n    seq = tf.cast(tf.math.equal(seq, 0), tf.float32)\n  \n    # add extra dimensions to add the padding\n    # to the attention logits. \n    return seq[:, tf.newaxis, tf.newaxis, :]  # (batch_size, 1, 1, seq_len)\n\ndef scaled_dot_product_attention(q, k, v, mask):\n    \"\"\"Calculate the attention weights.\n    q, k, v must have matching leading dimensions.\n    k, v must have matching penultimate dimension, i.e.: seq_len_k = seq_len_v.\n    The mask has different shapes depending on its type(padding or look ahead) \n    but it must be broadcastable for addition.\n\n    Args:\n    q: query shape == (..., seq_len_q, depth)\n    k: key shape == (..., seq_len_k, depth)\n    v: value shape == (..., seq_len_v, depth_v)\n    mask: Float tensor with shape broadcastable \n          to (..., seq_len_q, seq_len_k). Defaults to None.\n\n    Returns:\n    output, attention_weights\n    \"\"\"\n\n    matmul_qk = tf.matmul(q, k, transpose_b=True)  # (..., seq_len_q, seq_len_k)\n  \n    # scale matmul_qk\n    dk = tf.cast(tf.shape(k)[-1], tf.float32)\n    scaled_attention_logits = matmul_qk / tf.math.sqrt(dk)\n\n    # add the mask to the scaled tensor.\n    if mask is not None:\n        scaled_attention_logits += (mask * -1e9)  \n\n    # softmax is normalized on the last axis (seq_len_k) so that the scores\n    # add up to 1.\n    attention_weights = tf.nn.softmax(scaled_attention_logits, axis=-1)  # (..., seq_len_q, seq_len_k)\n\n    output = tf.matmul(attention_weights, v)  # (..., seq_len_q, depth_v)\n\n    return output, attention_weights\n\nclass MultiHeadAttention(tf.keras.layers.Layer):\n    \n    def __init__(self, d_model, num_heads):\n        super(MultiHeadAttention, self).__init__()\n        self.num_heads = num_heads\n        self.d_model = d_model\n\n        assert d_model % self.num_heads == 0\n\n        self.depth = d_model // self.num_heads\n\n        self.wq = tf.keras.layers.Dense(d_model)\n        self.wk = tf.keras.layers.Dense(d_model)\n        self.wv = tf.keras.layers.Dense(d_model)\n\n        self.dense = tf.keras.layers.Dense(d_model)\n\n    def get_config(self):\n        config = super(MultiHeadAttention, self).get_config().copy()\n        config.update({\n            'd_model': self.d_model,\n            'num_heads':self.num_heads\n        })\n        \n    def split_heads(self, x, batch_size):\n        \n        \"\"\"Split the last dimension into (num_heads, depth).\n        Transpose the result such that the shape is (batch_size, num_heads, seq_len, depth)\n        \"\"\"\n        x = tf.reshape(x, (batch_size, -1, self.num_heads, self.depth))\n        return tf.transpose(x, perm=[0, 2, 1, 3])\n    \n    def call(self, v, k, q, mask):\n        batch_size = tf.shape(q)[0]\n\n        q = self.wq(q)  # (batch_size, seq_len, d_model)\n        k = self.wk(k)  # (batch_size, seq_len, d_model)\n        v = self.wv(v)  # (batch_size, seq_len, d_model)\n\n        q = self.split_heads(q, batch_size)  # (batch_size, num_heads, seq_len_q, depth)\n        k = self.split_heads(k, batch_size)  # (batch_size, num_heads, seq_len_k, depth)\n        v = self.split_heads(v, batch_size)  # (batch_size, num_heads, seq_len_v, depth)\n\n        # scaled_attention.shape == (batch_size, num_heads, seq_len_q, depth)\n        # attention_weights.shape == (batch_size, num_heads, seq_len_q, seq_len_k)\n        scaled_attention, attention_weights = scaled_dot_product_attention(\n            q, k, v, mask)\n\n        scaled_attention = tf.transpose(scaled_attention, perm=[0, 2, 1, 3])  # (batch_size, seq_len_q, num_heads, depth)\n\n        concat_attention = tf.reshape(scaled_attention, \n                                      (batch_size, -1, self.d_model))  # (batch_size, seq_len_q, d_model)\n\n        output = self.dense(concat_attention)  # (batch_size, seq_len_q, d_model)\n\n        return output, attention_weights\n\ndef point_wise_feed_forward_network(d_model, dff):\n    return tf.keras.Sequential([\n      tf.keras.layers.Dense(dff, activation='relu'),  # (batch_size, seq_len, dff)\n      tf.keras.layers.Dense(d_model)  # (batch_size, seq_len, d_model)\n  ])\n\nclass Encoder(tf.keras.layers.Layer):\n    def __init__(self, num_layers, d_model, num_heads, dff,\n               maximum_position_encoding, rate=0.1):\n        super(Encoder, self).__init__()\n\n        self.d_model = d_model\n        self.num_layers = num_layers\n        self.num_heads = num_heads\n        self.dff = dff\n        self.maximum_position_encoding = maximum_position_encoding\n        self.rate = rate\n\n        #self.embedding = tf.keras.layers.Embedding(input_vocab_size, d_model)\n        self.pos_encoding = positional_encoding(maximum_position_encoding, \n                                                self.d_model)\n\n\n        self.enc_layers = [EncoderLayer(d_model, num_heads, dff, rate) \n                           for _ in range(num_layers)]\n\n        self.dropout = tf.keras.layers.Dropout(rate)\n        \n    def get_config(self):\n        config = super(Encoder, self).get_config().copy()\n        config.update({\n            'num_layers': self.num_layers,\n            'd_model': self.d_model,\n            'num_heads':self.num_heads,\n            'dff':self.dff,\n            'maximum_position_encoding':self.maximum_position_encoding,\n            'rate':self.rate  \n        })\n        \n    def call(self, x, training, mask):\n\n        seq_len = tf.shape(x)[1]\n\n        # adding embedding and position encoding.\n        #x = self.embedding(x)  # (batch_size, input_seq_len, d_model)\n        x *= tf.math.sqrt(tf.cast(self.d_model, tf.float32))\n        x += self.pos_encoding[:, :seq_len, :]\n\n        x = self.dropout(x, training=training)         \n\n        for i in range(self.num_layers):\n            x = self.enc_layers[i](x, training, mask)\n\n        return x  # (batch_size, input_seq_len, d_model)\n\nclass EncoderLayer(tf.keras.layers.Layer):\n    def __init__(self, d_model, num_heads, dff, rate=0.1):\n        super(EncoderLayer, self).__init__()\n        \n        self.d_model = d_model\n        self.num_heads = num_heads\n        self.dff = dff\n        self.rate = rate\n\n        self.mha = MultiHeadAttention(d_model, num_heads)\n        self.ffn = point_wise_feed_forward_network(d_model, dff)\n\n        self.layernorm1 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n        self.layernorm2 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n\n        self.dropout1 = tf.keras.layers.Dropout(rate)\n        self.dropout2 = tf.keras.layers.Dropout(rate)\n        \n    def get_config(self):\n        config = super(EncoderLayer, self).get_config().copy()\n        config.update({\n            'd_model': self.d_model,\n            'num_heads':self.num_heads,\n            'dff':self.dff,\n            'rate':self.rate  \n        })\n        \n    def call(self, x, training, mask):\n\n        attn_output, _ = self.mha(x, x, x, mask)  # (batch_size, input_seq_len, d_model)\n        attn_output = self.dropout1(attn_output, training=training)\n        out1 = self.layernorm1(x + attn_output)  # (batch_size, input_seq_len, d_model)\n\n        ffn_output = self.ffn(out1)  # (batch_size, input_seq_len, d_model)\n        ffn_output = self.dropout2(ffn_output, training=training)\n        out2 = self.layernorm2(out1 + ffn_output)  # (batch_size, input_seq_len, d_model)\n    \n        return out2\n    \nclass Transformer(tf.keras.Model):\n    def __init__(self, num_layers, d_model, num_heads, dff, \n                 pe_input, rate=0.1):\n        super(Transformer, self).__init__()\n        \n        self.num_layers = num_layers\n        self.d_model = d_model\n        self.num_heads = num_heads\n        self.dff = dff\n        self.pe_input = pe_input\n        self.rate = rate\n        \n        self.encoder = Encoder(num_layers, d_model, num_heads, dff, \n                                pe_input, rate)\n        \n    def get_config(self):\n        config = super(Transformer,self).get_config().copy()\n        config.update({\n            'num_layers': self.num_layers,\n            'd_model': self.d_model,\n            'num_heads':self.num_heads,\n            'dff':self.dff,\n            'pe_input':self.pe_input,\n            'rate':self.rate  \n        })\n    \n    def call(self, inp, training, enc_padding_mask):\n        return self.encoder(inp, training, enc_padding_mask)","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:52:21.129262Z","iopub.execute_input":"2021-09-02T17:52:21.129924Z","iopub.status.idle":"2021-09-02T17:52:21.170767Z","shell.execute_reply.started":"2021-09-02T17:52:21.129889Z","shell.execute_reply":"2021-09-02T17:52:21.169852Z"},"trusted":true},"execution_count":6,"outputs":[]},{"cell_type":"markdown","source":"## ArcFace Loss","metadata":{}},{"cell_type":"code","source":"class ArcFace(tf.keras.layers.Layer):\n    \n    def __init__(self, n_classes, s, m,regularizer):\n        super().__init__()\n        self.n_classes = n_classes\n        self.s = s\n        self.m = m\n        self.regularizer = tf.keras.regularizers.get(regularizer)\n\n    def get_config(self):\n\n        config = super().get_config().copy()\n        config.update({\n            'n_classes': self.n_classes,\n            's': self.s,\n            'm': self.m,\n            'regularizer': self.regularizer\n        })\n        return config\n\n    def build(self, input_shape):\n        super(ArcFace, self).build(input_shape[0])\n        self.W = self.add_weight(name='W',\n                                shape=(input_shape[0][-1], self.n_classes),\n                                initializer='glorot_uniform',\n                                trainable=True\n                                )\n\n    def call(self, inputs):\n        x, y = inputs\n        c = tf.keras.backend.shape(x)[-1]\n        # normalize feature\n        x = tf.nn.l2_normalize(x, axis=1)\n        # normalize weights\n        W = tf.nn.l2_normalize(self.W, axis=0)\n        # dot product\n        logits = x @ W\n        # add margin\n        # clip logits to prevent zero division when backward\n        theta = tf.acos(tf.keras.backend.clip(logits, -1.0 + tf.keras.backend.epsilon(), 1.0 - tf.keras.backend.epsilon()))\n        target_logits = tf.cos(theta + self.m)\n        # sin = tf.sqrt(1 - logits**2)\n        # cos_m = tf.cos(logits)\n        # sin_m = tf.sin(logits)\n        # target_logits = logits * cos_m - sin * sin_m\n        #\n        logits = logits * (1 - y) + target_logits * y\n        # feature re-scale\n        logits *= self.s\n        out = tf.nn.softmax(logits)    \n        return out\n\n    def compute_output_shape(self, input_shape):\n        return (None, self.n_classes)","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:52:30.955077Z","iopub.execute_input":"2021-09-02T17:52:30.955571Z","iopub.status.idle":"2021-09-02T17:52:30.967301Z","shell.execute_reply.started":"2021-09-02T17:52:30.955540Z","shell.execute_reply":"2021-09-02T17:52:30.966554Z"},"trusted":true},"execution_count":7,"outputs":[]},{"cell_type":"markdown","source":"# Model Training","metadata":{}},{"cell_type":"code","source":"####### Phase-1 Models\n###### Defining Architecture\n\nwith tpu_strategy.scope():\n\n    ##### SC_Module \n\n    #### Defining Hyperparameters\n    num_layers = 2\n    d_model = 512\n    num_heads = 8\n    dff = 1024\n    max_seq_len = 640 #X_train.shape[1]\n    pe_input = 160\n    rate = 0.5\n    num_features = 1\n    num_classes = 5\n\n    #### Defining Layers\n    Input_layer = tf.keras.layers.Input(shape=(max_seq_len,num_features))\n    self_conv1 = self_cal_Conv1D(128,15,128)\n    self_conv2 = self_cal_Conv1D(128,20,128) # Newly Added\n    self_conv3 = self_cal_Conv1D(256,15,128)\n    self_conv4 = self_cal_Conv1D(256,20,256) # Newly Added\n    self_conv5 = self_cal_Conv1D(512,15,256)\n    self_conv6 = self_cal_Conv1D(512,20,512) # Newly Added\n    self_conv7 = self_cal_Conv1D(1024,15,512)\n    self_conv8 = self_cal_Conv1D(1024,20,1024) # Newly Added\n    conv_initial = tf.keras.layers.Conv1D(32,15,padding='same',activation='relu')\n    conv_second = tf.keras.layers.Conv1D(64,15,padding='same',activation='relu')\n    conv_third = tf.keras.layers.Conv1D(128,15,padding='same',activation='relu')\n    #lstm1 = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(128,activation='tanh',return_sequences=True),merge_mode='ave')\n    transform_1 = tf.keras.layers.Conv1D(128,3,padding='same',kernel_initializer='lecun_normal', activation='selu')\n    transform_2 = tf.keras.layers.Conv1D(256,3,padding='same',kernel_initializer='lecun_normal', activation='selu')\n    transform_3 = tf.keras.layers.Conv1D(512,3,padding='same',kernel_initializer='lecun_normal', activation='selu')\n    transform_4 = tf.keras.layers.Conv1D(1024,3,padding='same',kernel_initializer='lecun_normal', activation='selu')\n    transformer = Transformer(num_layers,d_model,num_heads,dff,pe_input,rate)\n    gap_layer = tf.keras.layers.GlobalAveragePooling1D()\n    arc_logit_layer = ArcFace(5,30.0,0.3,tf.keras.regularizers.l2(1e-4))\n\n    #### Defining Architecture\n    ### Input Layer\n    Inputs = Input_layer\n    Input_Labels = tf.keras.layers.Input(shape=(num_classes,))\n\n    ### Initial Convolutional Layers\n    conv_initial = conv_initial(Inputs)\n    #conv_initial = tf.keras.layers.LayerNormalization()(conv_initial)\n    #conv_initial = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv_initial)     \n    #conv_initial = tf.keras.layers.Add()([conv_initial,Inputs])\n    \n    conv_second = conv_second(conv_initial)\n    #conv_second = tf.keras.layers.LayerNormalization()(conv_second)\n    #conv_second = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv_second)\n    #conv_second = tf.keras.layers.Add()([conv_second,conv_initial])\n    #conv_second = tf.keras.layers.concatenate(axis=2)([conv_initial,conv_second])\n    \n    conv_third = conv_third(conv_second)\n    #conv_third = tf.keras.layers.LayerNormalization()(conv_third)\n    #conv_third = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv_third)\n    #mask = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(Inputs)\n    #conv_third = tf.keras.layers.Add()([conv_third,conv_second])\n    #conv_third = tf.keras.layers.concatenate(axis=2)([conv_initial,conv_second,conv_third])\n    #conv_third = lstm1(conv_second)\n    #conv_third = tf.keras.layers.Attention()([conv_third,conv_third])\n    \n    ### 1st Residual Block\n    transform_1 = transform_1(conv_third)\n    conv1 = self_conv1(conv_third)\n    #conv1 = tf.keras.layers.AlphaDropout(rate=0.2)(conv1)\n    conv2 = self_conv2(conv1)\n    #conv2 = tf.keras.layers.AlphaDropout(rate=0.2)(conv2)\n    conv2 = tf.keras.layers.Add()([conv2,transform_1])\n    #conv2 = tf.keras.layers.LayerNormalization()(conv2)\n    conv2 = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv2)\n    #mask = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(mask)    \n\n    ### 2nd Residual Block\n    #conv_third = tf.keras.layers.Attention()([conv_third,conv_third])\n    transform_2 = transform_2(conv2)\n    conv3 = self_conv3(conv2)\n    #conv3 = tf.keras.layers.AlphaDropout(rate=0.2)(conv3)\n    conv4 = self_conv4(conv3)\n    #conv4 = tf.keras.layers.AlphaDropout(rate=0.2)(conv4)\n    conv4 = tf.keras.layers.Add()([conv4,transform_2])\n    #conv4 = tf.keras.layers.LayerNormalization()(conv4)\n    conv4 = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv4)\n    #mask = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(mask)\n\n    ### 3rd Residual Block\n    transform_3 = transform_3(conv4)\n    conv5 = self_conv5(conv4)\n    #conv5 = tf.keras.layers.AlphaDropout(rate=0.2)(conv5)\n    conv6 = self_conv6(conv5)\n    #conv6 = tf.keras.layers.AlphaDropout(rate=0.2)(conv6)\n    conv6 = tf.keras.layers.Add()([conv6,transform_3])\n    #conv6 = tf.keras.layers.LayerNormalization()(conv6)\n    #conv6 = tf.keras.layers.MaxPool1D(pool_size=2,strides=2)(conv6)\n\n    ### 4th Residual Block\n    #transform_4 = transform_4(conv6)\n    #conv7 = self_conv7(conv6)\n    #conv8 = self_conv8(conv7)\n    #conv8 = tf.keras.layers.Add()([conv8,transform_4])\n\n    ### Transformer\n    ## Wide-Head Attention Model\n    #tx_embedding = tf.keras.layers.Lambda(PE_Layer)(Inputs)\n    #tx_embedding = tf.keras.layers.Dropout(rate)(tx_embedding,training=True)\n    #mask_reshaped = tf.keras.layers.Reshape((max_seq_len,))(Inputs)\n    #encoder_op1 = encoder_block1(tx_embedding,mask_reshaped)\n    #encoder_op2 = encoder_block2(encoder_op1,mask_reshaped)\n\n    ## Narrow-Head Attention Model\n    #mask_reshaped = tf.keras.layers.Reshape((160,))(mask)\n    embeddings =  transformer(inp=conv6,enc_padding_mask=None)\n    #embeddings = transformer(inp=conv6,enc_padding_mask=create_padding_mask(mask))\n    #residual_embeddings = tf.keras.layers.Add()([conv6,embeddings])\n\n    ### Output Layers\n    ## Initial Layers\n    gap_op = gap_layer(embeddings)\n    dense1 = tf.keras.layers.Dense(256,activation='relu')(gap_op)\n    dropout1 = tf.keras.layers.Dropout(rate)(dense1)\n    \n    ## ArcFace Output Network\n    dense2 = tf.keras.layers.Dense(256,kernel_initializer='he_normal',\n                kernel_regularizer=tf.keras.regularizers.l2(1e-4))(dropout1)\n    ##dense2 = tf.keras.layers.BatchNormalization()(dense2)\n    dense3 = arc_logit_layer(([dense2,Input_Labels]))\n    \n    ## Softmax Output Network\n    #dense2 = tf.keras.layers.Dense(256,activation='relu')(dropout1)\n    ###dropout2 = tf.keras.layers.Dropout(rate)(dense2) # Not to be included\n    #dense3 = tf.keras.layers.Dense(35,activation='softmax')(dense2)\n\n    #### Compiling Architecture            \n    ### ArcFace Model Compilation\n    model = tf.keras.models.Model(inputs=[Inputs,Input_Labels],outputs=dense3)\n    model.load_weights('../input/ptb-baseline/PTB_Baseline.h5')\n    model.compile(tf.keras.optimizers.Adam(lr=1e-4,clipnorm=1.0),loss='categorical_crossentropy',metrics=['accuracy'])\n    ### Softmax Model Compilation\n    #model = tf.keras.models.Model(inputs=Inputs,outputs=dense3)\n\nmodel.summary()      \ntf.keras.utils.plot_model(model)\n##### Model Training \n\n#### Model Checkpointing\n#! mkdir './Models'\n#filepath= \"/content/Models/saved-model-{epoch:02d}-{val_accuracy:.2f}.h5\"\n#checkpoint = tf.keras.callbacks.ModelCheckpoint(filepath,monitor='val_accuracy',save_best_only=False,mode='max')\nfilepath = './PTB_Baseline.h5'\ncheckpoint = tf.keras.callbacks.ModelCheckpoint(filepath,monitor='val_accuracy',save_best_only=True,mode='max',save_weights_only=True)\n\n#### Custom Learning Rate Schedule\n#def build_lrfn(lr_start=1e-4, lr_max=1e-3, \n#               lr_min=1e-6, lr_rampup_epochs=5, \n#               lr_sustain_epochs=0, lr_exp_decay=.87):\n#    lr_max = lr_max * tpu_strategy.num_replicas_in_sync\n\n#    def lrfn(epoch):\n#        if epoch < lr_rampup_epochs:\n#            lr = (lr_max - lr_start) / lr_rampup_epochs * epoch + lr_start\n#        elif epoch < lr_rampup_epochs + lr_sustain_epochs:\n#            lr = lr_max\n#        else:\n#            lr = (lr_max - lr_min) * lr_exp_decay**(epoch - lr_rampup_epochs - lr_sustain_epochs) + lr_min#\n#        return lr\n#    \n#    return lrfn\n\n#lrfn = build_lrfn()\n#lr_callback = tf.keras.callbacks.LearningRateScheduler(lrfn, verbose=1)\n#callback_list = [checkpoint,  lr_callback]\n\n#### Model Training\n#### Model Training\n### ArcFace Training\n#history = model.fit((X_train,y_train_ohot),y_train_ohot,epochs=500,batch_size=128,\n#                validation_data=((X_dev,y_dev_ohot),y_dev_ohot),validation_batch_size=128,\n#               callbacks=checkpoint)\n\n### Softmax Training \n#history = model.fit(X_train,y_train_ohot,epochs=250,batch_size=128,\n#                validation_data=(X_dev,y_dev_ohot),validation_batch_size=128,\n#                callbacks=checkpoint)\n\n\n##### Plotting Metrics  \n#### Accuracy and Loss Plots \n\n### Accuracy\n#plt.plot(history.history['accuracy'])\n#plt.plot(history.history['val_accuracy'])\n#plt.title('Model Accuracy')\n#plt.ylabel('Accuracy')\n#plt.xlabel('Epoch')  \n#plt.legend(['Train', 'Validation'], loc='best')\n#plt.show()\n\n### Loss     \n#plt.plot(history.history['loss'])  \n#plt.plot(history.history['val_loss'])\n#plt.title('Model Loss')  \n#plt.ylabel('Loss')         \n#plt.xlabel('epoch')\n#plt.legend(['Train', 'Validation'], loc='best')   \n#plt.show()      \n\n##### Saving Model            \n#model.save_weights('ECG_SCNRNet.h5' )","metadata":{"execution":{"iopub.status.busy":"2021-09-02T15:52:40.509923Z","iopub.execute_input":"2021-09-02T15:52:40.510294Z","iopub.status.idle":"2021-09-02T15:52:48.632083Z","shell.execute_reply.started":"2021-09-02T15:52:40.510259Z","shell.execute_reply":"2021-09-02T15:52:48.631006Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Model Testing","metadata":{}},{"cell_type":"markdown","source":"## KNN based ArcFace Loss Testing","metadata":{}},{"cell_type":"code","source":"###### Testing Model - ArcFace Style                \nwith tpu_strategy.scope():     \n\n    def normalisation_layer(x):   \n        return(tf.math.l2_normalize(x, axis=1, epsilon=1e-12))\n\n    #X_dev_flipped = tf.image.flip_up_down(X_dev)  \n    #x_train_flipped = tf.image.flip_up_down(X_train_final)\n\n    predictive_model = tf.keras.models.Model(inputs=model.input,outputs=model.layers[-3].output)\n    predictive_model.compile(tf.keras.optimizers.Adam(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])\n\nwith tpu_strategy.scope():\n    y_in = tf.keras.layers.Input((113,))\n\n    Input_Layer = tf.keras.layers.Input((640,1))\n    op_1 = predictive_model([Input_Layer,y_in])\n\n    ##Input_Layer_Flipped = tf.keras.layers.Input((224,224,3))\n    ##op_2 = predictive_model([Input_Layer_Flipped,y_in]) \n    ##final_op = tf.keras.layers.Concatenate(axis=1)(op_1)\n\n    final_norm_op = tf.keras.layers.Lambda(normalisation_layer)(op_1)\n\n    testing_model = tf.keras.models.Model(inputs=[Input_Layer,y_in],outputs=final_norm_op)\n    testing_model.compile(tf.keras.optimizers.Adam(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])\n\n##### Nearest Neighbor Classification\nfrom sklearn.neighbors import KNeighborsClassifier\nTest_Embeddings = testing_model.predict((X_dev,y_dev_ohot))\nTrain_Embeddings = testing_model.predict((X_train,y_train_ohot))\n\ncol_mean = np.nanmean(Test_Embeddings, axis=0)\ninds = np.where(np.isnan(Test_Embeddings))\n#print(inds)\nTest_Embeddings[inds] = np.take(col_mean, inds[1])\n\ncol_mean = np.nanmean(Train_Embeddings, axis=0)                                                                                                                                \ninds = np.where(np.isnan(Train_Embeddings))\n#print(inds)\nTrain_Embeddings[inds] = np.take(col_mean, inds[1])\n\n#Test_Embeddings = np.nan_to_num(Test_Embeddings)\n\n##### Refining Test Embeddings\n#for i in range(Train_Embeddings.shape[0]):\n#    for j in range(Train_Embeddings.shape[1]):\n#        if(math.isnan(Train_Embeddings[i,j])):\n#            Train_Embeddings[i,j] == 0\n#        if(Train_Embeddings[i,j]>1e4):\n#            Train_Embeddings[i,j] == 1e4\n\n##### Refining Train Embeddings    \n#for i in range(Test_Embeddings.shape[0]):\n#    for j in range(Test_Embeddings.shape[1]):\n#        if(math.isnan(Test_Embeddings[i,j])):\n#            Test_Embeddings[i,j] == 0\n#        if(Test_Embeddings[i,j]>1e4 or math.isinf(Test_Embeddings[i,j])):\n#            Test_Embeddings[i,j] == 1e4\n\n#del(X_train_final,X_dev,X_dev_flipped,x_train_flipped)\n#gc.collect()\n\nTest_Accuracy_With_Train = []\nTest_Accuracy_With_Test = []\n                                                                     \nfor k in range(1,31):\n    knn = KNeighborsClassifier(n_neighbors=k,metric='euclidean')\n    knn.fit(Train_Embeddings,y_train)\n    Test_Accuracy_With_Train.append(knn.score(Test_Embeddings,y_dev))\n    knn.fit(Test_Embeddings,y_dev)\n    Test_Accuracy_With_Test.append(knn.score(Test_Embeddings,y_dev))\n\nprint('--------------------------------')\nprint(np.max(Test_Accuracy_With_Train))\nprint(np.max(Test_Accuracy_With_Test))\nprint('--------------------------------')\nprint(np.mean(Test_Accuracy_With_Train))\nprint(np.mean(Test_Accuracy_With_Test))\nprint('--------------------------------')\nprint((Test_Accuracy_With_Train)[0])\nprint((Test_Accuracy_With_Test)[0])\nprint('--------------------------------')\n\nplt.plot(np.arange(1,31),np.array(Test_Accuracy_With_Train),label='Test_Accuracy_With_Train')\nplt.plot(np.arange(1,31),np.array(Test_Accuracy_With_Test),label='Test_Accuracy_With_Test')\nplt.title('Testing Accuracy vs Number of Neighbors')\nplt.xlabel('Number of Neighbors')\nplt.ylabel('Test Accuracy')\nplt.legend()       \nplt.show()                 \n\nnp.savez_compressed('Test_Embeddings_Baseline.npz',Test_Embeddings)\nnp.savez_compressed('Train_Embeddings_Baseline.npz',Train_Embeddings)","metadata":{"execution":{"iopub.status.busy":"2021-07-30T05:56:21.190742Z","iopub.execute_input":"2021-07-30T05:56:21.191272Z","iopub.status.idle":"2021-07-30T06:04:30.000614Z","shell.execute_reply.started":"2021-07-30T05:56:21.191221Z","shell.execute_reply":"2021-07-30T06:04:29.9998Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## t-SNE","metadata":{}},{"cell_type":"code","source":"####### t-SNE Plot Generation\n###### Model Creation\n#with tpu_strategy.scope():          \n#    tsne_model = tf.keras.models.Model(inputs=model.input,outputs=model.layers[-4].output)\n#    tsne_model.compile(tf.keras.optimizers.Adam(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])\n#tsne_model.summary()\n\n###### Model Predicted\n#embeddings_final = tsne_model.predict((X_dev,y_exp))\n\n###### t-SNE plot plotting\n##### Reduction to Lower Dimensions\ntsne_X_dev = TSNE(n_components=2,perplexity=30,learning_rate=10,n_iter=2000,n_iter_without_progress=50).fit_transform(Test_Embeddings)\n\n##### Plotting\nj = 0 # Index for rotating legend\nplt.rcParams[\"figure.figsize\"] = [24,16]\nmStyles = [\".\",\",\",\"o\",\"v\",\"^\",\"<\",\">\",\"1\",\"2\",\"3\",\"4\",\"8\",\"s\",\"p\",\"P\",\"*\",\"h\",\"H\",\"+\",\"x\",\"X\",\"D\",\"d\",\"|\",\"_\",\n           0,1,2,3,4,5,6,7,8,9,10,11,0,1,2,3,4,5,6,7,8,9,10]\nfor idx,color_index,marker_type in zip(list(np.arange(100)),sns.color_palette('muted',100),mStyles):\n    plt.scatter(tsne_X_dev[y_dev == idx, 0], tsne_X_dev[y_dev == idx, 1],marker=marker_type)\nplt.legend([str(j) for j in range(100)])\nplt.savefig('tsne_plot_5000_iters.png')\nplt.savefig('tsne_plot_5000_iters.pdf')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-07-30T06:06:38.754376Z","iopub.execute_input":"2021-07-30T06:06:38.755053Z","iopub.status.idle":"2021-07-30T06:08:32.583027Z","shell.execute_reply.started":"2021-07-30T06:06:38.754999Z","shell.execute_reply":"2021-07-30T06:08:32.582189Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Datset Variability Analysis using t-SNE","metadata":{}},{"cell_type":"code","source":"####### Sampling Examples from t-SNE plots\n\n###### Defining Essentials \nX_train_va = [] # va for variabiltiy analysis\nX_dev_va = []\ny_va = [] # Training and Testing Dataset Share the same labels\n\n##### Training Dataset\nfor class_idx in [10,11,12,13,14]: # Selection of Class\n    \n    total_items = 0 # Variable to monitor the Number of Samples in the va set\n    \n    for i in range(X_train.shape[0]): # Looping over the Training Dataset    \n        \n        if(total_items < 5):\n            \n            if(y_train[i] == class_idx):\n                X_train_va.append(X_train[i])\n                y_va.append(class_idx-10)\n                \n                total_items = total_items+1\n    \n##### Testing Dataset\nfor class_idx in [10,11,12,13,14]: # Selection of Class\n    \n    total_items = 0 # Variable to monitor the Number of Samples in the va set\n    \n    for i in range(X_dev.shape[0]): # Looping over the Training Dataset    \n        \n        if(total_items < 5):\n            \n            if(y_dev[i] == class_idx):\n                X_dev_va.append(X_dev[i])\n                #y_va.appenf(class_idx)\n                \n                total_items = total_items+1","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:52:51.195869Z","iopub.execute_input":"2021-09-02T17:52:51.196411Z","iopub.status.idle":"2021-09-02T17:52:51.214577Z","shell.execute_reply.started":"2021-09-02T17:52:51.196378Z","shell.execute_reply":"2021-09-02T17:52:51.213831Z"},"trusted":true},"execution_count":8,"outputs":[]},{"cell_type":"code","source":"###### Inferring Data Shape\nprint(np.array(X_train_va).shape)\nprint(np.array(X_dev_va).shape)\nprint(np.array(y_va).shape)","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:52:54.294204Z","iopub.execute_input":"2021-09-02T17:52:54.294690Z","iopub.status.idle":"2021-09-02T17:52:54.300161Z","shell.execute_reply.started":"2021-09-02T17:52:54.294660Z","shell.execute_reply":"2021-09-02T17:52:54.299412Z"},"trusted":true},"execution_count":9,"outputs":[{"name":"stdout","text":"(25, 640, 1)\n(25, 640, 1)\n(25,)\n","output_type":"stream"}]},{"cell_type":"code","source":"###### Plotting Data \nfor i in range(0,25,5):\n    plt.plot(np.arange(640),X_train_va[i])\n    plt.plot(np.arange(640),X_dev_va[i])\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:52:57.264065Z","iopub.execute_input":"2021-09-02T17:52:57.264456Z","iopub.status.idle":"2021-09-02T17:52:57.991490Z","shell.execute_reply.started":"2021-09-02T17:52:57.264419Z","shell.execute_reply":"2021-09-02T17:52:57.990605Z"},"trusted":true},"execution_count":10,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAXIAAAD4CAYAAADxeG0DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABGMUlEQVR4nO2dd5wV1fn/3+e27Sxt6VUQECmCK4odC/bYjRprVEwxMYn5GjVFTWKSn8YajRFjSWKPvURBrNhAUDqI9A5LW2DZ22bO749z55ZtsHvnsju7z/v12tfeKXfuubszzzzzecpRWmsEQRAE7+Jr7gEIgiAI2SGGXBAEweOIIRcEQfA4YsgFQRA8jhhyQRAEjxNojg/t3Lmz7tevX3N8tCAIgmeZOXPmZq11Wc31zWLI+/Xrx4wZM5rjowVBEDyLUmplXetFWhEEQfA4YsgFQRA8jhhyQRAEjyOGXBAEweOIIRcEQfA4YsgFQRA8jhhyQRAEjyOGPBdsnA/Lpzb3KARBaCM0S0FQq+fhw83v324Bv/yJBUHILeKR55K1M5t7BIIgtAHEkOeCws7m9871zTsOQRD2nl2bYNmHzT2KJiGGPCckps+zos07DEEQ9p6XroJ/nwnV25p7JI1GDHkOiMRt8yIead6BCK2CcMyi301v8fyXq5p7KK2b6u3m96ppzTqMpiCG3GXWbNtNVSRmFuLh5h2M0CpYt70agN+8Oq+ZR9LK6XKA+b1pfvOOowmIIXeZrVVRlLMg0orgAhsqjUMQs3Qzj6SVoxLmMLKzecfRBFwx5Eqp9kqpF5VSi5RSC5VSY904rhfZFYmjEhq5FROPXMiedZVyHu0TYubJh8iu5h1HE3Aryfl+4B2t9XlKqRBQ6NJxPcfuiIUvYcgj1bvb7h9CcI0NldXNPYS2gWPIo94z5Fl75EqpUuBo4DEArXVUa7092+N6laponCBxACJhuQCF7Nm2O5Z8HbPsZhxJKyfueORtU1rpD1QATyilvlZK/VMpVVRzJ6XUBKXUDKXUjIqKChc+tmWyKxwjD3PhRSLySCxkT3XMSr4Op70WXMaRQqNVzTuOJuCGIQ8Ao4GHtdajgCrgppo7aa0naq3LtdblZWW15g5tNVSHw/iUkVZiEfHIhewJR1PGu1oMee5oy9IKsAZYo7V2ki9fxBj2Nkm4enfytZb0Q8EFMjzyqEgrOSPu3WBn1oZca70BWK2UGpxYdTywINvjepVIOGXIiUv6oZA96YZcPPIckpRWvGfI3cpa+QnwdCJjZRlwpUvH9RzR9ACnJZWdQvZUi7Syb4glnDAPBjtdMeRa61lAuRvH8jo6mvLIlZToCy4QjlnkB32EY3aGURdcxpFCPXjdSmWny+g0L1xJZafgAtUxi46FIUCyVnKKY8g9eN2KIXcZnVbN6bO9d2cXWh7VMYsORaHkayEH2BZoG3wB0JZZ9hBiyF3GkVMiOigeueAK1VGbjo4hF2klNzjXaqgoc9kjiCF3m8Tj2U4KUXZsDzsLwp4JxyzaF4pHnlOsxLUaKja/PaaTiyF3m4RGXkUBPjHkQpZoramOWZQWmLyEuJTo54akIS/KXPYIYshdxpFWdqtCMeRC1sRtjWVrivOCgLSyzRl2DY/cY6nDYshdxglw7laF+LUYciE7oonZporz/GZZPPLcIBq5kI4v4ZFX+8QjF7LH6XZYGApkLAsuU0sjF0PepgkkPPKwrxC/jjfzaASv43jgeUEfAZ8SQ54ramnkYsjbNL6kIS8iINKKkCWOtBL0+wj6faKR5wpbDLmQhuORR/2FYsiFrHEMd8jvI+hXScMuuExSIy/OXPYIYshdRGuN344SVyFsX4gAcdDiQQlNxzHcoYCPUMAnwc5cUVNakTzytkvc1uQRI+7PA79JF/NaPqrQsnA08aS0Ih55bpA8csEhErfJI4bty0P7TCWe1x7RhJZFJM0jNxq5GPKcUCv9UDzyNkskZpGnYti+IDoghlzInpRHrgj6lQQ7c4WdyDATjVyIWZoAcbQviPaJtCJkT1IjT0gropHniFoeubeuW1cmllBKrQB2AhYQ11q3yUkmYpZNAAvtC4BIK4ILOB55KOAjLyDSSs7weLDTraneAMZprTe7eDzPEbNsgljGGw84HrkYcqHp1M4jF0OeE2pWdnrsuhVpxUXitiaYkFbwOx65tx7RhJZF1KoR7IyLRp4TkgVBhea3x65btwy5BiYrpWYqpSbUtYNSaoJSaoZSakZFRYVLH9uySEkrQZRfpBUhezIKgiSPPHc412kwYcg91ifJLUN+pNZ6NHAK8GOl1NE1d9BaT9Ral2uty8vKylz62JZFzNIEscAfgIB45EL2pEsrIb/0WskZkkcOWuu1id+bgFeAMW4c12vELZuAikOaR67j4T28SxDqJ1ZTWhFDnhscwx0syFz2CFkbcqVUkVKqxHkNjAfmZXtcL5LukauER257rB2m0LJIeeRKmmblEkda8eeB8ntOWnEja6Ur8IpSyjneM1rrd1w4rueI2zZB4uAP4kt45FYsgr+ZxyV4l5rBTmmalSOcgiB/0Px4zCPP2pBrrZcBI10Yi+dxgp3KH0p65PFYhFAzj0vwLsnKTp+PUEBJsDNXWFFQPvD5TcaZxwy5pB+6iKnstIxHHsoDwIqJtCI0nZhl4/cpfD4lGnkusWLgVGP7Ap6TVsSQu0jcMnnkyh/EF3AMubcqxISWRdzSBHwKQLof5hIrlqr98KC0IobcReK2TUBZxpD7JdgpZE/M0gT95jINBSTYmTPsmEkbBuOZ296aplEMuYtE46ZE3+cP4g+JRy5kT8yyCfpTHnnUstEyWYn7WNEaHrm3HDAx5C7ilOirQBC/pB8KLhC3bQKOR54w6HFbDLnriLQiOMSTWStB/EHjkYshF7IhZmmCaRq5WSc6uetYMRPkBJFW2jpOQZAvkIc/6HjkIq0ITSdm2QQD5jJNGnJpnOU+GdJKQDzytozJI4/j8wcJJjxyLRq5kAUZWSsJgy655DnAjqfm2fWHPKeRu9mPvM1jWXH8SqMDQQKBADHtR3vszi60LEywM1MjF2klB1jRlCEXaaVtYyX0cF8gZOZXJIAWjVzIgridSj8UjTyHpBcEibTStrHj5p/v8wdN8QZ+tMce0YSWRcyyCfgzg53SbyUHZGSthKSysy2TzFDxBwkFfETxXj6q0LKIWTZBX6ZHLhp5DqhZEOSx61YMuYvY8VQHtaDfR5SA504IoWURtzTBgPHIQwFHI5esFdeplbUiGnmbJSmj+IJGI9diyIXsiFk2AZ9o5Dkno2lWUKSVtoxtpaQVo5F7L2gitCxMr5WER57MIxdD7jpWzNPph64ZcqWUXyn1tVLqTbeO6TV0IthpPHJjyJXHTgihZRG3U+mHkkeeQ0RaSXI9sNDF43mOpLTiDxD0K6L4UR57RBNaFjFLp/Va8SXXCS6TXhDUVqUVpVQv4DTgn24cz6to5y7uE2lFcAeTtSK9VnJOekFQG26adR9wI1DvGaaUmqCUmqGUmlFRUeHSx7YsktKKP2QMuQ7gs0VaEZpO3NJpeeTmt+SR54CMgqA2ONWbUup0YJPWemZD+2mtJ2qty7XW5WVlZdl+bMvEeRzzB/D7FHEVwOexRzShZZFeoi955DkkvSCojU71dgTwHaXUCuA54Dil1FMuHNdzJPuqJO7scYKikQtZkW7I8wJS2Zkz0guC2qK0orW+WWvdS2vdD7gQeF9rfUnWI/MgyvnnJ7Q28ciFbInbqe6HoYBo5DkjI2slBGiwrWYdUmOQPHI3sWt45L4gfjHkQhbU1Y9cPHKXsS3QdlpBUMIz91DqsKttbLXWHwIfunlMT5GmkQPYKohPiyEXmobWOmOGIPHIc0SNJ+nkbysGwYLmGVMjEY/cRZSdSj8EsFQQvxhyoYlYibk5nTxyR2IRj9xl0iqygZRn7qGe5GLIXSSlkSemefMF8XvoZBBaFk7hjyOpKKUIBXxExCN3F+caTZ98GTwlrYghdxFVQ1qxVEA8cqHJxGxjsJ38cTDVnTJnp8skm92lZa2ApzJXxJC7iNKZwU7bF8SvxSMXmkY84ZE7kgoYnTxqeSebwhPUeJJOSStiyNskSY3c7xjyEEFioMWDEhqPE9R0slZAPPKckNTIa0or3nHCxJC7SCrYaR7RtM97j2hCyyFpyH2pyzQYUFLZ6TZJB6ymtCIaeZukpkeuPXhCCC2HpLRSQyMXQ+4yNT1ykVbaNskqzponhBhyoQnEk8HONI/c75P0Q7ep0VpDpJU2TjKw6XM88oRBF2lFaALRuJN+mPLI8wJiyF2nZkGQk70iHnnbxKfj2PggoWmmDLl45ELjcTzygC/TI5fKTpepWRDkwetWDLlLWLYmgIWtUl0PlAdPCKHlkCwISs9aEY/cfWpKoiKttF1ilk2AOLYvrX2NSCtCFqSyVjLzyMUjd5maGrlIK22XuHjkgsukslYypZWIeOTuUqtplvccMDHkLhGL24SIYzt3dUAFvHdCCC2HOkv0A5J+6Dq1NHLvZZuJIXeJmG0TwEoVAQEExCMXmk4sXjv9MCTBTvep2TQrKa2IRt7miFuaoIqj0zRyX8KQayvSXMMSPEzcrqcgSKQVd6k3a8U7T9JuTL6cr5SarpSarZSar5S63Y2BeY24pQkSx/aFkuscQx6PiiEXGk8y2OnPLNF3slkEl6i3IMg7T9JuzBAUAY7TWu9SSgWBT5RSb2utv3Dh2J4hatkEa0grjiG3YhGC9b1REOohmX7oS5dW/OKRu0293Q+9I61kbci11hrYlVgMJn7anMsQt22CxFP6GuAL5pltMfHIhcYTT3jkAQl25paktNLGm2YppfxKqVnAJuBdrfW0OvaZoJSaoZSaUVFR4cbHtijilkk/TFZzkumRC0JjidWpkSuicRstrZHdo96CoDakkQNorS2t9UFAL2CMUmpYHftM1FqXa63Ly8rK3PjYFkXUsgmpTI/cH8wHwIp5584utBySWSu+zMpOQHRyN6mlkbfBYGc6WuvtwAfAyW4e1ws4wc50j9yfkFbEIxeagtNrJRTILAgCJAXRTawYoMDnN8s+v1luS5WdSqkypVT7xOsC4ERgUbbH9Rpxy+SRJx/LgEAwMQlzXDxyofHUnHwZUkZdAp4uYkXNdatSEhb+kKc8cjeyVroD/1JK+TE3hhe01m+6cFxPEbM1IeKoNEPueOS2SCtCE4jGa1d2ikeeA+x4Sk5x8AfbliHXWs8BRrkwFk8TizseeeqECIQShlwKgoQmELNsgn6FUplZK4D0W3ETK5oR2wKMIW9L0opgcNIPVV3SinjkQhMwhjzzEs0LiEfuOlastkfuC7a99EPB6JlBFU91PATyggFi2o/20AkhtBxilq5lyJ1lySV3ESuWEdsCEhq5dwqCxJC7hPHIrVSjLBKzuRBAS9aK0ASidXjkIb8EO13HCXam4w+IR94WicVN+qEv7YQwhlw8cqFpxOI2obRAJ6RmCxJpxUXseqQV0cjbHjFHI0/zyEMBH1ECYsiFJhGz7Ixp3iDlkUuw00WsWKoYyMFj6YdiyF3CFARZybJ8SPSOxluPaELLoS6NXCo7c0CdGnlADHlbJGYZj9xX0yPX3spHFVoOopHvI+rUyEOecsDEkLtEPB7Hp3SGIQ+KRy5kQcyqrZGHRCN3n7oKgnxBT7WxFUPuEnYiM8UXSN3ZQwFjyJV45EITqCuP3KnyFI/cReorCPLQdSuG3CXsxD890yNXRPGjPBT9FloOsXj9GrkYchepqyDILwVBbRKnMZby5yXXOcFO5aETQmg5RBvIWpGCIBepryDIQw6YGHKXcKSV5CwjgFKKOAHxyIUm0ZBGLh65i9h1GHKfZK20Saya8/4561VQDLnQJKLxOrJWJNjpPla0njxy7zxJiyF3iaRHXuOEiKsAfts7J4TQcqg72CkeuevUpZEH8sFD8wiIIXeJ5OQRNR7RLBXEJx650ATqKggK+BRKiUfuKnXlkQdCEA83z3iagBszBPVWSn2glFqglJqvlLrejYF5DTtev7Ti02LIhcYTtWxCgUyNXClF0O8jIobcPeIRCORlrgvkm/UewY0ZguLADVrrr5RSJcBMpdS7WusFLhzbM9Tnkdu+IH4PFRYILYe6pBWAPL9PpBU3saJ1SCt54KEJYbL2yLXW67XWXyVe7wQWAj2zPa7XSDbGqimt+IL4xSMXmkCsjmAnmA6IIq24SF0euT/PGHjbG39nVzVypVQ/zLRv0+rYNkEpNUMpNaOiosLNj20ZOIbcV4dHLoZcaAJ1aeRgcsnFI3cJKw7aMlJKOo5h94hX7pohV0oVAy8BP9Na76i5XWs9UWtdrrUuLysrc+tjWwy6Ho1cqyB+LdKK0Di01kYjr5FHDonWD9L90B0cQ11X1gp4Rid3xZArpYIYI/601vplN47pNbSTmVKHRh4QQy40krhtDHWd0opfiUfuFo6hrhXsDGVub+G4kbWigMeAhVrre7IfkjdR9QQ7tT9EkBho8aCEvcfRwEOBOqSVgF8mlnCLZGyrPo/cGymIbnjkRwCXAscppWYlfk514bieQtdT2akdzVwyV4RGEIvX75GH/EqCnW7hGOq60g/BM9WdWacfaq0/AWoLeW0NR1qpqx0m1F10IAj14DTFqtk0CxITlohH7g7Ok3TNYKfjkLUhj1wAfHbdj2ja7y2tTWgZJKWVOoKdQb9Puh+6hQQ7hQwc6aSWtJJY9lAnNaH5cQx5ndKK5JG7R9IjrymtJJbFkLctfFbdWSvKiX57RGsTWgYNGnLJI3ePej1yx5CLtNKmUPWkH2Zo5IKwl0QbCHYGAyKtuEYy2FlPQZB45G0H29apop8ad3bxyIWmkEo/rK2RS68VF0lKKzWnemujlZ1tmahlEyRhyGs1qHdOCNHIhb2nIWkl6BeN3DWS0opo5G2eSNwmoCxsfODL/JM6kzEnJ54QhL0guodgp3jkLlFvsLPtFQS1eWKWTYgYti9Ua5sjrcTEkAuNwOmlUn/WilQKu4JjqOsNdnpDEhVD7gLRuE0eMayaJwPgS5wQlhhyoRHE4k4eed3SinjkLuFIK/UGO8UjbzNE445HnldrmyOtxKNiyIW9J6mR1xHsDCWyVrT078me+oKdyRJ9b1y3YshdIGrZ5KlYqoozDX/Q8ci9cWcXWgYNauSJak+RV1ygvmCnLwAoCXa2JRxpxa55MgC+pCH3htYmtAwcI12XtOJ0RJRccheoL9ipVGLeTm84YGLIXSASt8kjXjtgQpq0Ih650AgcDby+9ENI6ehCFsTDxvv2+WtvC+RJsLMtYTzyKLpmwAQIhMw6WzxyoRGEYxYA+UHxyHOKFa0tqzgE8sQjb0vELJuQitd5QgRDZp145EJjCMeNIc8L1PYUHblFMldcIB6pHeh0COS1LY1cKfW4UmqTUmqeG8fzGo5GXktnI+WRi0YuNIZwzBjpvHr6kYN45K5gRRrwyPPbXNbKk8DJLh3Lc0SthCEP1j4hQo604pE7u9AyiMQsQgEfPl8d6YfikbtHQx65v4155Frrj4GtbhzLizh55KouaSXPrGuVJfrxCDx/Caz4BL78J0R2NveIWg2RuE1+Hd44pAU7xSPPnnikdjGQg4c08qynehNS0ooK1j4h8kOJXiseiX7vNVrDcxfDkimw8A2zbttKGP+H5h1XKyEcs8gP1pFJQZq0Ih559jQY7MyXrJWaKKUmKKVmKKVmVFRU7KuP3SdELJuQiuGrw5DnBQNEdBDtkRNir5nzvDHi6XzxMGxe0jzjaWWIId9HNBjsDHnGI99nhlxrPVFrXa61Li8rK9tXH7tPcDxyXx0aeV7AR5RA6zLkKz6F138KXYfD9bNhzAQ451EzAfW8l5p7dK2CcMyuM/UQSBp4J7NFyII9euTekEQl/dAFYpZjyAtqbcsL+InhR3sk+r1XTH/EFFFc9Ax06Aen3gUjLoBeh8D8V4zsImRFOF6/R16QWF8dFY88a+LhhtMPPXLdupV++CzwOTBYKbVGKXWVG8f1CtGYRYhYsq9KOnlBHzECrWeGoGgVLHkPhp8H7ftkbjvkaqhYCNP+0Txja0WEYxb5deSQQ5ohj4lHnjUNBTv93gl2upW1cpHWurvWOqi17qW1fsyN43qFeCyKX2l8odoeecjvI6qDEG8lMwQteguiu2DEd2tvG34BdB0G81/d58NqbYRjNnn1Siu+xD5iyLPGitbZWgNoewVBbR0dqzYvArUNuc+niKogyvLGnb1BYtUw+TdQ3BX6jK293eeDbsOhcvW+H1srIxyz6qzqBMgP+ZP7CFkSDzeQfigaeZtCx3abF3Vo5AARlYevNRjyWc/Aro0w8IRaU9olKe0FO9dLTnmWROL1BztTGrkY8qyJVdd73ZqsFTHkbQY7mvDI6zPk5BOwqvfhiHKAFYOpd5vXp91T/36lvUHb8OdecO8wc6EIjSbSQPph0O/D71OSteIGsWoIFta9zWlj64HgvRhyF1Cxhg151JdHwOse+Xu3w461MPhUqCNfPkm/I1OvK1fDyk9zP7ZWSLgBjxyMVy5ZKy7QkEfuzwM02PF9OqSmIIbcBZQT2a5DIweI+fK9bchtG75+Cjr0h9PubnjfTgPgxuXws7ngC8Kyj/bNGFsZDWWtgMkll6yVLLFipvahXmnFO/N2iiF3ARVv2CO3/PkE7JZ/MtTLcxdB9TY45lfQrsee9y/saFITuwyBTQtzP75Whta6wcpOMJkrETHk2bGHJ+lkENQDOrkYchfYkyG3AwUEvWjId6yHlyfA4nfM8pBTG/f+siFQ8Y3742rlxCyNreueVMKhQDzy7NmjIU+kJYohbxskM1LqOSF0oICQ3fJPhgy0hue/Z3qqABxzE+SXNu4YZUOgchXsbrONMZuEE8RsyCMvCPnZLVkr2ZF0wBoIdoJIK20F3x40ch0oIA+PGfKl78HamSYLBaDTwMYfY8A489vx6IW9wskPz2vAkJfkB9gRbiVFZs1Fsv6jgTa2IB55W2FPHrkKFRIkboIrXkBr+OguaNcLfjITrppiSvIbS/dRUFQGyz50fYitmUgDswM5dC7OY/Oulm9gWjTJ+o96PHKnmZZL/VaicZv7pixm+27323W0LkOudbPkfAb2aMjN+mThUEtk/Rx46lxYPhVWTIXVX8CRPzNeSe9DQNWeqWaP+HzQ5zBY9bnrw92XaK15YcZqZq/evk8+LzXxcv0eeefiPDbvbCX9e5qLPWrk7njkccumKhLnP1+s5L4p3/J1Ds6j1jOxhNamAGXE+XDCbfv0o5MZKfU8ovlCxQCEd++ioLE6875i4eumv3heO6iqgOJuMOrS7I/b53Az8UTlWijtmf3xmoF/fbaC295YgN+nmHvbeApDub1snPk665shCIwhr45ZVEXiFOW1nst4n+JMiJ5DjXxHOMbNL81l0vwNxG3NUft35thB7rfxbjUeubVjPexYA5/cyzfrK/l27nTsfdSoyu88etVnyAtKANi9owUH/SoWmd/zXzYe+RHXN1z4s7f0Ocz8vncofOM9rXx3NM4jHy8DwLI1J9z9EfEcT7EW2YtgZ+dik1GxeVeEyupY65lk4pP7YM3MffNZSWmlnvM8lDDw0aomHf712es46PbJvDV3PXFb0700n1vPGIpqytPtHmgVhvzFmWu4765bk8t3/u1+9n/pRGY/fcs++fyAHSGmQvX2HwmUdAGgaut6s2LHerj7APj23X0yvr0iPU0wVAwHX+HOcbuNSL1+to6OiS2McMyisjrG+f/4jNvfmM8NL8xmfWWYJ644BIB1lWFenbUux2NIeOQNGfIS89j/7cZdjLx9Mre9MT+nY8oZtg0rPzdP1Cs/hym3wqs/2Def7Ugm9SQpJLO0wjuadPgnPl1Ov85FPHvNYSz/86l8+qvjGNilpEnH2hOeN+Q7wzHueOVLbgi8kFx3hX8SAPEVn7OhMvepQ34dJa7qaYUJFHXsDkDV1nXmxH3jeti5ruX07dYatq9K9RfXdsobyRZ/jcf+FpyKuHD9Dob89h1G3j6ZL1ds44lPV/D2vA3830mDGTekCx/937F0Kgrx0eLcTlWY0sjrvzzLio0hn5h4Wnhm2ipsu2X3BPl2404qd9d4Sp75BDxxMix6E755y6zbV3GuZLZZPTME5bc3v8OVjTrsvLWVTP22gq9Xbefc0b0YO6ATSil8Pvc9cQfPG/Lnv1zN0fZ0AP4aO58q8jnKPw8Ay4rz7PRVOR9DwI4S99VzMgClZb3MeCqWohe/Dd+aGw3bVuR8bA2iNaz9yhjXeNhMDNHzYDjjfnc/59zHoDRxk1j2gbvHdpEXZmS23x3Vpz1/PGsYPzhmAAB9OxVx5P6d+XTJ5px2HtybPPKyhEc+fUXqxviPj5fmbEzZUh21OPHejxn5+8lc/a8vUy14nafSb9+FhW+a19tX7ZsMr3jDsS3yEt6zY8gXvQWbv23wkDvDMU7/2ydc+pixSacM6+bGSPeIWzMEnayU+kYptUQpdZMbx9wTWmtmrtzGPW/P4edFk4iU7seT/nO4NZ6anGi0bwkz5i3I+ViCdgSrvub0QOeybthaMeybB1DPXUylLuSVrj+BLUtgY+7HVyexMDx5Ojw6Dp690Kzr0A+ueR9GXIDWmuqoxQtfrmZnOEbFzghbdkXYGY6xbns1T32xksUb97JV7fDz4KdfG8lmRcttorVg3Q7O93/Ij/yvUVoQ5JUfHcElh/XFn+ZJXTymD1urorwxJ3fySirYWb8h71iUOt/OHtWT0X3a88pXa3M2pmyYuXIbp/1tKgBdSvKYsnATD06ay7I/jYHFb5udvvoXbFvOxtKRJt1v7T7QyZPSSj1OmD8IwSKI7DAptM9dDA+Wp244adw1aRFH/OV9ht82GYDDB3Ti4e+NZr+y4hwNPpOsw91KKT/wEHAisAb4Uin1utY6pxbqkyWbufSx6czMu45OsZ0w5vd8MuoELOs4WNAPOg8k9J+z6b/5Q1ZvHU/vji5JBTWIWTZBotgNeORFBXmgUo+LOynksW0HcTYY77zr0JyMrV52boR3fgUrPzHLa4z3QInpo6K15revzeOpL8zTzK9enlPn024o4GPazcfToaj+m1gSfwB6HworP3PjGzTMx3+FXuWw37F7tfv23VECfh9LK6p4PjgRgGt/+WCd+47p35HSgiBfr9rOBeW93RpxBnsjrQT9qW3l/Towslcpt72xgCWbdjGwy74xHg3xf/+dTcyyOfOgnlz55JfJ9S/98HB++tzXbPz8afYLfkNM+7knfj6/Cj7HffFzeHzjycwu+AH2lN/jv/Sl+lMD3WBPHjkYnTy8HTbMS617/ntwWyXVUYtfvjib4wZ34aEPUk9DSsHTVx+ak6BmfbiRtzQGWKK1XgaglHoOOBPIiSGfNH8DH35TwbPTV6Gw6aQSXuHQM2lfmDAoh04ArbHySjkgvoppy7fmzJDvjlrkEcNu6GQAtqiOdNLmMTjiL2bejgKqug6kaPo/TaT+6vegcxOqJ+tj7Vfw9Pkw4UNonzA4WsOMx80sP07EvvdhpiHWtuVsK+zHG5+v4HevpQJnxwwqY8mmXazdXk3n4hCdi/NYVlHFxYf24cnPVvDmnHVcOrbf3o2p7+Hw/h9g/WxTMVrYsfHfS2uY9GuTaXD871Lr57xgLvr9x8MHd5hK1KNugHdugjMfgiGnpfbdMNc8HXTsz+9em8e/P18JQDG7IfFvLLU2A7UbhKl3f8sHvme4dPWTjR/7XpKs7GzAIwcYUFbE0ooqxu7XiYKQn9veWMCUhRub1ZBPX76V/81dz39nrgHg1Vnr6FKSx4Sj92NLVZReHQq4ZfwAuj3zP3b7Spl89CtcMWwAk98bTaeeJ7Dj9UVMiY/ixFWfEv1iIqGjrs/dYOMRQBnPuz7yS420smujWc4rhUglVG/jgY828tac9bw1xyQxvPyjw1m0ficjepXuUyMO7hjynkC6uLgGOLTmTkqpCcAEgD59+tTcvFfc8dYCHp26PLl8TDcLtgOn3GlkgcwPRHUbzvDlK3hrbyWAJlAdtcgnivbX75EDPND9Lwxe9Ryrg/34ydUTCP19BQvzRlK+6SWzw6I3TQGOW0x7BHZvhnkvwpE/N+s2zoO3fpHa5/hb4Siz/MSny7n9runJTT8eN4Drxu1PQciP1pqYpQkFfGit2RmJ0y4/yBfLtvDcl6s5aVg3upTsRaqi06v8kaPNBXLhs1DQHroe2PD7tDaPt/mlJk3yi4fM+vxSMyPRsHPh5WvMuh9+boK1mxfDlNvNTWr2sylDvm4WTDwGgMXfX8D2ac/ST/Vnhe7Od/K+Tn3mf86Bq99N6aQAG+fDZ3+jI/DI1iuJzvozoYMu2PP3biSRRCphfXN2Ojx6WTnhmJ18fO/TsXCfFS3Vx73vLubzZVsAOG1Ed/bvUswJB3RlWM9SqNoMq6dzCLvAXgPn/ouzDjwYgPHnXwvA2soYt3x0FSf6Z7L6m1kMOCqHg3WmeWvI6Ba0N+MOFpk4z+n3wNPnsXbx1zz8oSkoOnJgZw7s2Y7RfTowuk+HHA64fvZZJYHWeiIwEaC8vLxJYenDB3SmV/U3FOxez5BBgxjxzsVmQ9mQOvf39TmMA1few/c+nseVR/SnW6kLedE1qI5Z5KkYBPbg8Xc9kFuWXc0J+3elsMcBjOi5jQ+qB1HubN/yLcSjqY5rNdm4AIo6w3u/h5PuyGxgtX42PPc9M5HDd582U7GtSTzOrppmgplrZxrjlkAPPIGvel2CWrWNf3y4lMkLjMexX1kR/7pyTMYTjFKKUEAlX7fLNx7MOaN78qf/LWLMHe/xm9MO4Oqj9mv4b9BrDIy4EFZ8YnL+n0x0U/z5fGOQ62PWM/Daj8wNqWpzav27CY+8d5rfsCnxIOjPM5lBAIsnmSCVHU8acYBBjw/lgcSfOzrmx4SmP5Q6TsVC+OxBGHczWHGY9rB5knG+itoMr17DtMpCDumej6/vocboV22B9bNg4PH1f59VX5gnknoKpMIxC6UaLtEHaumvw3uWMnvN9gbfkwtmrtxG744FbK2K8vmyLRSG/Nx0yhAuS39SW/gGPH+JeT36cvP/2X98rWPddMoQfnr8QL658362rfmWnau3c1Dv9rkZeDxSvz7u0PNgmD7R7FvcBbocAMDEF14FTuIfl4zm5GHdczO+RuBGsHMtkC4W9kqsc51xQ7pw+bwruGDZzYz46repDd1H1v2GAePwYzPWN58pCzeyckvTEvsbYnc0bjzy+nJRE4xMnIxnjDT/9IP7duDpLYOJH5Sonvz6KXjxSojsgqU1MjvWzoSHx8Jf94ev/wOznk2laIV3mKClM+Hx69eZUvutCc1u+UdwZ394+jyYdAt0HgxnPczjPW7n3Ee+5Jy/f8bkBRsJ+BRv/uRI3r/h2L2Woc46qGcyEHj35MVsrYo2XCzj88E5j8DP52Wud7J3tiw1N7N3boGn0zzdhW+Y35/ca75/3yPhgO+ktt+b5tG/dBUoX/JJg0GnmDzh166Dv5vipG2F/bgxdk3GEELTHzI3x6umpFZ+8TDYFnz9b2PEg4Vw5TvsuPDV5C6HfvA9fM+cS/W9o7E+/wf840h46hyoXAPv32FuwJVrjXxWvd3cVB8/yfyP0tm5AbaaVEIz8bKv0Y/no/q0Z822atZsy30riIqdEXZF4lz7nxmc+/BnjLnjPU6+zwQ0b65pxCGzGOyrf8Gwc+pNcS0MBejVfzC9VAVXPDE9J71JgKRH/vnSLVw48XNWbK5i044wOj0gNPQssKKw7iu2+ztw5n9WsMzuxu3Bf/HP8jUtwoiDOx75l8D+Sqn+GAN+IXCxC8etTfofeFOaBF/Qvu79e41BB4s4QS3gxleN8Th9RHfu++5BBPzuZF6GYxbFxFB7qII8e1RPxg3ukgwMju7bgUc+DjF71O85uF13+PhO+OZtY3BXfQ4XPmPkgOUfw9s1EoHe+ZX5GXwadBtmZIdzH4Meo2DiOBPEPPwn5iR8/tKUHg5w6l08sb4Pf5i8gPFDu1IVNTLJAxeNygig7Q1d2uUz59bxLKuo4owHP2H0H97liIGdeOqqPQR6lIITf2++25IpsG2lkVf+Njpzv+hu0w+jpoY56hLTWXH/8ebGVZOhZ8KYCTD9UdNDffh58NLVyc3f33YlX+v9OeXcqzjY/y3tegw2cs/4P5q+Mg6RSnj7RiPVBArgFwuhoD3tgP8cO5XdU/7CtQGT+1wQ3gSTfpV670OHQnSX+b86TLnV/I/AePyznoXBJ0NBB3jkGNi1AX67JTHxcpo+vm2lmdCjIS0X4+j88a2FPDNtFTeeXPdTqlsccseUjOWTD+xG1LI5bkgXzhmd9qSx7CPjZGyYbeIS0V1m/fG30hBFPYdRuORNdHgHB/3epCi+ft0RDOpaQsXOSKNiXpXVMTbuCBO3NPuVFfHwh0u5bGxfOiU88j++tYD563Zw7F8/TL7nwB7teOCiUWyI9EdZQzncv4DHlpYy26rkcvUrpub9nBNKcp/avLdkbci11nGl1HXAJMAPPK61zk2Z2fyXM5dHXAjH/qrufQECIVS/Izh+9UJI9Md5c8563pm3gTku9czYHbXoRAzfHgy5Uioju8PR0mau3MbBx/0ahp8PDx2SajD13MVw/WxjiMPbzbpT7jSSydz/muVv3koVUew3Doo6wdVTTEpX+VWQVww3LDSz9ATy+WDmPH74xG7CsQWM3a8Td18wkuJEn46mBmeK8gIM71XKo5eVc82/Z/Dpki38+tV5/Oa0Axr++x5xPZR/30zS/NqP4LU69nn8JNgwp/b6Hgfx2aYAs3cczg/H/cZMCh2vhsteg3Y9jQRV0AFuWAT+IFuroiwdcTsj5tzBtdHrGTn2RE4oyePIkfsR9JtHZW5aXdtQDj4NvvynCXB1OSDDYbjgyAOZumUczH2LzXSgM9sy3xvdBR33S3rZSdal6fCv/gB6lsOVbxsjDrD0PcKxbib18KM7odtwkx7asxyuea/+vycwoKyY8UO78sSnK7hh/OCMtEm3CMcs1m3PnFB76o3j6jastg3/TntyGn258ca7j4R2e/Bk+45FaZuXRs3h719HeNk+iu88mEpdnfKLo9myK8qgriVoYNH6HTz+6XKuOLw/BSEfQ7uXMndtJX98awFz1pg8cKWgKBRgVyTONxt28kBgNzE7wPwNO+hems/6tOLB+et2cPzdZprCsb6zOcy3kNftwzm0f0fOPXgE+tP+qJ3rG/fHyyGuaORa6/8B/3PjWA2ydZnRQ8dMMJ7S4T8xF0tD7DeOTt9O5g/HtqNTz4E8O30VU7/dzPef/JJfnDiYp6et5AfHDOCA7u2aNKTdUYt8FUU1Mk2qrCSPvp0K+ffnKxnVpwOH9BtkPOgFr6Z2eueWlBE/8Gw49FoYeaHRmt/+P7M+r50xikWdEgceZH7S6XKACWa+5wNsThvRnT+cOYyS/IY9vMZw4tCuLPvTqfzudZO2OHn+Bm4940BOH9EdpRQ7wjEuf3w6t3/nQEb0ap8Ye41yZeWHn37FnAqLEc+MzjDi4THXUT3oTNrNf4opm9px7VPTACj8zvk8GjyYO8cXURQczEufrmHsfmEK8yoY2auUhz5wAuQDCfAot5w+gu8f2b/2F0iPTXTcz/TXOPUuc6OMVNY6z/ICfk446wroo+jc9whY+gF64et83O0KjpluAnf/7f5Lzr/sKLhvuHnTGfebasH+R8M9Q8EfgrUzMp9EPvwLZ1d1Y3HgApN947B2hpFlamb6LHrLeOsJT/+EA7oyecFGVm/dTb/ORQ38xxrPzJVbmfDvmWypMlLHGSN78ONxA4wRn/Nf6HdE5lSAT56WeYBDr4X9T4S+R+z5w3qaIOjA+fdzTwgO6NmbO5b2Z/8uxXy7aRd/e38Jr9XRKmHKwk3m7e0LWJt2w+nZvoBwzEqO/Z35G/gouIbuymQI/fmc4Yzu2wF/4lz9zSvzeG+ROdbn9oFc0O1//OaYARw7uMw8uc7tYVpttBCUboa2r+Xl5XrGjBlNe3NDAcG6qPgGHhoDh/4QKlezZdSPOfiJTO/p0P4defTy8mQQrzG8NmstR78yBt+I8yg9t3EVkb94YRYvJ4o4pt9yPF3a5Rs5Yed6kzb3rSkuYMjpcOHTmW+OhcEXqFUCv7RiF5Pmb+D4IV1ZtGEHAZ+PHz/zVXL7r089gGuO3sPNLwu01rw4cw3/96Ixwj8eN4Bfjh/MG3PW89Nnv6ZLSR6XHtaXy4/oZ/7et5mg7aP972XAiCNo36kL5/z9Mw7zLWBI/jZ+Zj1Je1XF9dEf8Zp9ZJPHdfSgMi45tA/HDemyZ1nNigPaeOh3DzH/j3MehRF7maGS+E6Hhh/k/gmnMnL35+h4lMKDzkntE60yGRP3jzTSQ/9jjPf9uclf/zowglHxGk8jh/0Ixt2SeQNMfBY/mwsl3Zm1roqzHvqU0oIgX/32xIa98g1zzQ0qVNvgb6gMY2tNx6IQUxZuJBq3+cULs5PbB3ct4Z2fHWWe5Ko2w12m+pWffGUm4F4ypXYc4LbGlbonvxugj7mJFT1Po1/Xjvzwkbf5ems+G8m8qV1yWB/Wbw8zold77p1iAvvPXHMow3qW0i4/SDRuY9kanw8G/+Yd/h38M0UqzA/y/sL7NxyT4dhsrYoyaf4GSguCnHRgt9p/xxevMjfX62ezL1FKzdRal9dc773+l40x4gCdB0H7vibrAOi0Yy3T2m3mKf85/G2byXaYtnwrp9w3lak3jmt0P4RkHnmo8Rkxw3uWJg35m3PWG08xVGguhDPuN3ngG+eZYEtN0qScKQs2sisSp7I6xsSPl7F2ezV3vlN7rsyu7fLq9kZdRCnFeQf34l+fr2De2h089MFSwjE7Gd7YtDPC3e8uZvKCjfz9e6N5LX8C14Un8reFRexYuARYAsAX9lC+2A2ri7pzS+whPrMPrDVPZV7Al0zVA1OgdPKB3Xh9dqan9sw1h3L4gM57/yXSb47fnwTrvjJPS3vLiO/CnOdRJd25cOIXgKJ3x/Z8PFKnJCzHeI66BD78s2lS1nO0kdbWzqxtxAG++LspqJrwocltTu/Kd99wOPYWDjjyl8n88p89P4vrDwzTe8oPWFf+K/offbHJ3inqDNtXwyNHmSKwMx80xVM+o8s/8elybn+j7jKQv100iq7B3XTr2iP1XZxAO5gc//OfhFd+YOStH3xiYj+JbI+moj76C/35C3QexD92L2ZDXgfuHPJfbj3rIKYt3cyoXiWUtU9l8VxwSC/WV4Yz0gFDaVlA/7lqDMMn59G+qD1fXnFCrc/rWBTiojENpEm3721SexdPhkG1s2/2Nd7zyJvCqmmw6A2Tprf8Y7MuWMhXF33N4IV/49zpQ1gU6cjlY/ty86kH4FMq45/eEI9NXcaVU0YTPfzn5J/UcACnJlt2RfjR018xc+U2SvIDvH390Zkpkss+hH+faaSUq1OdErXWbNgRpktJPrPXbOecv2dWS/7kuIH87X1jEP941jDOGNGD0kL3ZJS9xbY1v39zAU9+tiJj/TmjeyZvYAB3fGcwhQX5rNyym6DfR9d2+YzoVUpB0E/vjoVUVsfID/rIC/iJWzZ+n2Lygo0c1r8Tu6JxNlRWE41rxg4w8lLMsvl4sSkae+TS8pxoxQ1ixSFezQcrqrnyiVRV40Vj+nDGiO4cPrDGTSWyy8QzEvzw768zvuoNzj5qtMnUCRbAd5+CN39hqnBPuA2m3AZFXaBqU+o4/Y+BM+5Dd+jPb16dx4Lp7/FKXuqcPCf4EC/HflznkKMn3UVo+NnEPrmfg6aWU1RYzKadpoR9/NCuXNBlDaPtuXTsOxz+e7nR9fsebt7spBYOPRMWvGZuSjOfNDGLvayurZO3fwXzXjZS1LwXa2/PawejLzNtl6u2wFWTG9fzfuI4KOwEl9Rx7D2x6C0TxwL42TzTbqPfkaZHjD9YO94Sj5r01yyb0dXnkbcNQ+4Qj5g87M8fhB6jof9R8On96DETuCV8Gc9OX4XfpxjSrYSXfnh4g02LHB5+byE/nHoY8WN/TeDYG5s0rIkfL+VP/1vE4K4lTPr50akNuzaZlMNT7jT6IrCtKspTX6zk7ncX07dTISu3mIyU7x/Rn54dCli/vZpbTj2AjTvDBP0+OhfvIU82x2iteeqLlUxbvpWLD+1D7w6F9O5YyOWPT092Efzqtydm9A5pTSzZtItVW6v4yTNfU5VotHXbGUM5elAZldUxRtVRQHLmg59QWhji398fk8jaCRlvObLTBIdrcsT1xllZ/YVJvbx+NrTvQ/Wjp1Kw9lNet8Zymu8LPreHcqS/7jyEJ+MnMXK/7oxa9STT7CEcEljK9ME30uOAw+gzaKQx1I4TBDD2OlPPYMVNvGrGY3DdTHjQaNt0HWa8cTcqHGPV5ntVroH/XlF3ANzhhm+gZC8bVf39cOjYv7ZsuTfs3mrSesEUI25bAYWdTRHeIVfDaXdn7v/k6SbQfUt2mdmtR1rJhkCeOfm2rTCVlOuMdqw2L+aPZ3WhR3GAZ2euY/66Hdzyylwqdka4oLw3Z4ysXartEA2bx1t/qOk9IS4b249np6/mm407+eukb2hfGGRYz1K6lxYR+NFSXpi1hWELNjL124pkOTmQNOJj+nfkN6cdkCELdS/NYY+KRqCU4tKx/WqV8U+87GDmra1kdJ8O+7yceV8ysEsxA7sU88BFo3jg/SXMXr2d29Jkizd/cqSpekwjHLPp6jwRpgfR80pMEHDtTHNzf/tGU1g07jcmfx5MquTjJ8Pxt1Kw9lM+6HA+0/pcz9Cl13PkrlQjqogOcG70NjSKt/J+zRWBSWxdWQwKDvUtAhsOW3gHLMRUNFbVaN27erpxiua/YpIQSvsYSdBh+PnuGPH0v0GnAfCDqUaTn/2ckWueSsQdepYbzXrhGzDmmvqPlY5T2dkUCjvCzWvgvT/A9EfMut2JYrXZz8Fxv4WXJxi5rPcY89QARooZMG6PqaSNpW155A6v/MCUbdeB/v4kTnk5yqINqbL+IwZ2YliPUn40biClBZn/gL++PJVfzjkdTv3r3p9AdbAjHOPqf81g+vLMft1+n8Kqo890SV6AG8YP4vLD+7VqQ9ia0Fozaf4GFqzfyQPvpdqhLv7jKRlS3jF3fcDIXu154KJRtQ+yY53xzMsGm0ZO+e1MH/nKNaazZGnPzGyRi543uepT7zaGF7jR+hFHjD+fNfF2zFtbyUVb/87RW2vIC05PkXR6jMpMn3ToPhIufsF4wn/sZlJBf7FozymGbjDxWDOm322F/9cfhp8Lp99rtkV2mgrS+uJq9xxopJ+zHqp7+94Q3mEK+Yq7wqy99Owv+A8M/c6e96sD8cjT6X90ypAPOA6Wvp/cpB4/iX9+bypPLenC6SNMsOrTJVv4dMkWOhaFuPaYARmHsqKJFKem3tkTtMsP8vTVh/LarHVMX76FBet3MG/tDtoXBHnsikP4dMlm7pr0DQf2aMfdF4xkcNcSMeAeQynFycO6J6sBn/x0OTvCceatq8wIykVidv2dD9PT+7oNS70u7QUjEzMwFXSE6q2mSrVX4poffgG893t0p4HcOuEPmfN8br4JHkwY8mHnmX4i2ob/189UAo+7xejiYybAoJNNJtgTJ6fef9FzKTnjyv8Z731fGHEwOvyuTUZ66jrUNIVr19O0c/hzLzjgDBNfqIt4eM8l+nsivx1ckuiX1PcIeOOnRgsHYxMu+I+JY0R2mSI+yGwp4RJt05AfdLEpJqreZoo8PvxLRgVery/v4KaLn4eN85l6/cFEA8Uc+qf3WFqxq9ah4pE9zMTdCIJ+H+cd3IvzDjY6aKrnhp+DerfnmkQvk70NxAotl1+cOIhLD+vLIXdM4auV2zIMeThu7VV8pl6u/dgY055p+ente8MlL6E67ld7subO+5vUwOrtRo93AnIXPWe88JJu0HWm0ZN9/tTNAeCW9ZkBvPTP3Bfkl6b6DvVIZP28/wfzA0Zq0bpumSceydoBy2DU98zNZOKxZrn3mMyMFseQl3R17zMTtF2L4POZIhqfHzr0zdy2fKo5qR8+nA7Pn0VXVcm/C+5m01dv8L+5mUUAKY/c/aBiftCf0co0FPCJEW9FlJXk0akoxLcbMx2EcCxLQ96+d90GdeAJDRfQFbTPNMqDT0l52p0HJtMT8QeNF3rtVPemBHSDLvW0JVhcz6TfbnjkNekxCn74mWkPPfryzG3XzTQ32RwgVgFMMySHsddBrMo0PwLYOBc+vouj9UweCD7I3ZMWZrzVju1Fc3pBqIcBXYpZkvakp7UmHLPJb+k37IEnQPcRe95vXzLyotrZIu37mhYHM5/MXG9bYMdyc912PRCummR6/KTTeWD9Df6ypG1KKzVxGhld+qqJKC/70BTiOHz5KADtVDWF2xdj26nCIR1zRyMX2iYDuxTz1pz1aG2KhVK9yLPwyNsq/qBJ/es4ALYtNzebLUvgP2fD9H+a/HaHPU3z5jFa+G1/H9Gxv9EIB4wzy533N78HpQV0upp+GYfoeWzYkWquIx65kA0Dy4qprI6xeZep3o0k5uvcUy9yoQEGjDMN2dr3MckM4/9onqxXTUvtszfTvHkIOVvq4pQ7TZvVC59JNfhp35vqkr6M9c1P5m8DaSdE67izC/sWZ1q2JZuMvBKOO/N1ikfuGuXfN32J0rVy8cjbAMVdTLWczw9XvAXj74CT/0K8z1Ec6lvI6s1p+bWOR57LSWKFVotjyJ2MqNTEy2LIXSNUZLzzbalpIsUjb2soBYdfBx36Ujj4ONqpaiKrUt0EscQjF5pOt3b5hAI+Vm81T3nhhLRSbx650DRq9oYXjzyFUup8pdR8pZStlKpVbdTa8A8cR4wAPdamHtF8lnNCtI47u7Bv8fkUvTsUsCppyBMeeUA8clfp0D81pSCIR16DecA5QG6SI1sahR1ZlH8Q++0ws83HLJuQnTDkIq0ITaRPx1TzMydrRaQVl2nXPdH6NxHfEo88hdZ6oda6duPrVkys4yC6WevZUR2hOmZRiGPIW1BhhOAp9isrZmnFLuKWnaaRi7TiKsWJwiZnSj3xyJuGUmqCUmqGUmpGRUXFnt/QQmnXcwgFKso3ixdTHbUoUBEsXyhV9SYIjWRo93ZE4jYrtlSxOyrBzpzglMW/cJmZVMOZlKOVPEnv0ZArpaYopebV8XNmYz5Iaz1Ra12utS4vKytr+oibmY69TRlw5aq57I4ajzzubx0ng9A8OPPFLly/k10R03CpKdMOCg1QkmjitWEufPAniOwwy/ml9b/HQ+yxslNrXXsepDZM+0GHE9FBitd8RHX0dApVBDsgsorQdPonJklesbmK4nxzSTq/BZco7Z16HSwwejmYybBbASLENRJffgnzgwfSY9uXVMfiFBDGFn1cyIKCkJ/upfks31LFrrDxyItrdigUsiO/nenmCKbradKQt2u+MblItumHZyul1gBjgbeUUpPcGVbLZnXBAfSIriC8u4oCohLoFLKmX6ciVmyuYmckTp50ucwNg08xcxFUrjGGPFjo+kw9zUW2WSuvaK17aa3ztNZdtdYnuTWwlsymkqEEsAhULKBQRcSQC1nTo30BGyrD7AzHKBF9PHe062lmWQpXthp9HERaaRLb2w8FoGDzbAqItKyezIInKSvJo2JXhB3hOO1EH88dxV1h10YIb29VhlzOmCag2vVis25H0Za52ETwiSEXsqSsJI+YpVmzrVoCnbmkuKvpQ759FeS1Dn0cxCNvEu2LQizX3QjsWEOBihAqKGnuIQkep6zEVBgu27SLEjHkuaO4i/m9+dtW5ZGLIW8CpQVBNutSQuEtFBHGn1/c3EMSPE5ZsTHkOyNxupS0jmrDFokzdV1stxjytk77whCbdSlF8a2UqNZ1QgjNg+ORA3Rp1zr6f7RIitMmPm4lqYcghrxJ9O1UyGZdSju9kwC2GHIha9INebd24pHnDEdagVZ13YohbwL9OhWx3Zd2ErSiE0JoHtIzVcSQ55D0AGcrum7FkDeBUMCHLumRWtGKTgiheVBKJV/36SRZUDlDqVTHw1Z03YohbyLxToNTC63ohBCanwO6tR7ttkXi9CBvRemHkufURLYGu6UWxJALLvCXc4ZTFbXw+dSedxaazv7jYe5/oci7XVhrIoa8iXx3TD/CS4PkqxjkiSEXsufCMX2aewhtg7MfgVGXQr8jm3skriGGvImMG9IFfjYDvnwMOvZv7uEIgrC3+Pyw3zHNPQpXEUOeDR36wfg/NPcoBEFo40iwUxAEweOIIRcEQfA4YsgFQRA8TrYzBN2llFqklJqjlHpFKdXepXEJgiAIe0m2Hvm7wDCt9QhgMXBz9kMSBEEQGkO2U71N1lrHE4tfAL2yH5IgCILQGNzUyL8PvF3fRqXUBKXUDKXUjIqKChc/VhAEoW2zxzxypdQUoFsdm36ttX4tsc+vgTjwdH3H0VpPBCYClJeX6yaNVhAEQaiF0jo7m6qUugK4Fjhea717L99TAaxs4kd2BjY38b0tAS+P38tjBxl/c+LlsUPLGX9frXWtJjFZGXKl1MnAPcAxWut9opcopWZorcv3xWflAi+P38tjBxl/c+LlsUPLH3+2GvmDQAnwrlJqllLqHy6MSRAEQWgEWfVa0VoPdGsggiAIQtPwYmXnxOYeQJZ4efxeHjvI+JsTL48dWvj4sw52CoIgCM2LFz1yQRAEIQ0x5IIgCB7HU4ZcKXWyUuobpdQSpdRNzT2emiilHldKbVJKzUtb11Ep9a5S6tvE7w6J9Uop9UDiu8xRSo1uvpEnx9pbKfWBUmqBUmq+Uur6xPoW/x2UUvlKqelKqdmJsd+eWN9fKTUtMcbnlVKhxPq8xPKSxPZ+zTX2dJRSfqXU10qpNxPLnhm/UmqFUmpuIoNtRmJdiz93EuNpr5R6MdEEcKFSaqxXxg4eMuRKKT/wEHAKMBS4SCk1tHlHVYsngZNrrLsJeE9rvT/wXmIZzPfYP/EzAXh4H42xIeLADVrrocBhwI8Tf2MvfIcIcJzWeiRwEHCyUuow4P8B9yYyrLYBVyX2vwrYllh/b2K/lsD1wMK0Za+Nf5zW+qC0nGsvnDsA9wPvaK2HACMx/wOvjB201p74AcYCk9KWbwZubu5x1THOfsC8tOVvgO6J192BbxKvHwEuqmu/lvIDvAac6LXvABQCXwGHYqrxAjXPIWASMDbxOpDYTzXzuHthDMZxwJuA8tj4VwCda6xr8ecOUAosr/n388LYnR/PeORAT2B12vKaxLqWTlet9frE6w1A18TrFv19Eo/qo4BpeOQ7JGSJWcAmTIvlpcB2nerQmT6+5NgT2yuBTvt0wLW5D7gRsBPLnfDW+DUwWSk1Uyk1IbHOC+dOf6ACeCIha/1TKVWEN8YOeEhaaQ1oc/tu8fmeSqli4CXgZ1rrHenbWvJ30FpbWuuDMJ7tGGBI845o71FKnQ5s0lrPbO6xZMGRWuvRGOnhx0qpo9M3tuBzJwCMBh7WWo8CqkjJKECLHjvgLUO+Fuidttwrsa6ls1Ep1R0g8XtTYn2L/D5KqSDGiD+ttX45sdpT30FrvR34ACNFtFdKORXM6eNLjj2xvRTYsm9HmsERwHeUUiuA5zDyyv14Z/xordcmfm8CXsHcTL1w7qwB1mitpyWWX8QYdi+MHfCWIf8S2D8RxQ8BFwKvN/OY9obXgcsTry/H6M7O+ssSEfDDgMq0x7hmQSmlgMeAhVrre9I2tfjvoJQqU4mpBpVSBRhtfyHGoJ+X2K3m2J3vdB7wfsLraha01jdrrXtprfthzu33tdbfwyPjV0oVKaVKnNfAeGAeHjh3tNYbgNVKqcGJVccDC/DA2JM0p0DfhKDEqZgp5ZZi+qE3+5hqjO9ZYD0Qw9zlr8Lolu8B3wJTgI6JfRUmC2cpMBcobwHjPxLz+DgHmJX4OdUL3wEYAXydGPs84HeJ9fsB04ElwH+BvMT6/MTyksT2/Zr775/2XY4F3vTS+BPjnJ34me9cn144dxLjOQiYkTh/XgU6eGXsWmsp0RcEQfA6XpJWBEEQhDoQQy4IguBxxJALgiB4HDHkgiAIHkcMuSAIgscRQy4IguBxxJALgiB4nP8PfiztZVAL4+gAAAAASUVORK5CYII=\n"},"metadata":{"needs_background":"light"}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAXIAAAD4CAYAAADxeG0DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABFg0lEQVR4nO2dd3hc1bW3332mqVrNsnHvNmAb22C6TTMtoSYhCQmQ0HPTLoQkBG7KTeFJvwTyhUAIAUJCIAFCCTVUh2qwjRu2ce9FkmVLVp2ZM/v7Y58zRTOyVc5IM2K9z6NnZs6cmdmyt36zzm+vtbbSWiMIgiDkL1Z/D0AQBEHoHSLkgiAIeY4IuSAIQp4jQi4IgpDniJALgiDkOf7++NDBgwfrsWPH9sdHC4Ig5C2LFi2q01pXdzzeL0I+duxYFi5c2B8fLQiCkLcopTZnOi7WiiAIQp4jQi4IgpDniJALgiDkOZ4IuVKqXCn1qFJqtVJqlVLqeC/eVxAEQTg4Xi123g48r7W+SCkVBIo8el9BEAThIPRayJVSZcBJwOUAWuswEO7t+wqCIAhdwwtrZRxQC9ynlHpfKXWPUqq440lKqWuVUguVUgtra2s9+FhBEAQBvBFyP3AkcKfWehbQDNzU8SSt9d1a69la69nV1Wn57IIg5Do73ofNb/f3KIQMeCHk24BtWusFzuNHMcIuCMJA4u5T4L6zIRbr75EIHei1kGutdwFblVJTnEPzgJW9fd+8ZslDMP9X/T0KQcgOO97v7xEIHfAqa+XrwINOxsoG4AqP3jc/eeK/zO3J3+7fcQiCl/iCYIehcRtwVH+PRkjCEyHXWi8BZnvxXnlPNClhp3UfFJb310gEwVsCRUbIm+v6eyRCB6Sy02satibu12/ov3EIgtcEnWS0lvr+HYeQhgi510TbEvcbt/ffOATBa7SzyNkiEXmuIULuNdH2xP1Ia/+NQxC8xp3PLXv6dxxCGiLkXiNCLgxU3LktQp5ziJB7jS1CLgxAtIaoM5+TgxUhJxAh95rkrJVIS/+NQxC8JFm8bWmllGuIkHtNckSevPApCPlM8lwWIc85RMi9JilyiYWb+3EgguAhKUIe7b9xCBkRIfeYWJKQ76zb138DEQQvkYg8pxEh95j6hiYAotrCDotHLgwQIo6QWwER8hxEhNxjwu1mZb+RIpRkrQgDBTciD5VCTKyVXEOE3GOiYSPeDboYFRUhFwYIdsTcBkskIs9BRMg9xg6byKWBYizJWhEGCm42VrBYhDwHESH3GDvSjq0VTboQy5aIXBgguOIdLJaslRxEhNxj7EgbYQKECWBJ5CIMFOLWikTkuYgIucfEou2E8WPjAy2RizBAcNNqgyUQi5iSfSFnECH3GB1pJ0yACD6UrO4LA4VkawUkcyXHECH3GB1tp50A2vJjyWQXBgrJ1gqIvZJjiJB7jR0mih8sP0qsFWGg0DEiFyHPKUTIPUbbUWLKh1YSkQsDiLiQlziPZW7nEiLkXmOHiaoAMcuPJRG5MFCQiDynESH3GBWLElN+UH4sbff3cATBG0TIcxoRco+xYhGiyi8RuTCwiHawVsQ2zClEyD3G0k5E7gvgQyJyYYBgh0FZ4A8lHgs5gwi5x/h0BFsFQPnwibUiDBTsMPhC4AsmHgs5gwi5x1iOR659AfxEpQJOGBjYESPivoDzWKyVXEKE3GPiEbnlTPiYROXCAMBuNyJu+c1j8chzChFyj7F0FG35wfKZAzLhhYGAHTYReVzII/07HiEFEXKP8esoMSuAjkfkMuG95q11dXzh3ndZuaOxv4fy0cGOgD8oEXmOIkLuMRbGI1dxL1GE3Gv+tWwn/1lTyyurd/f3UD462GFjF/rEMsxFRMg9xq+jJhpXrrUiE95rInYMgN2N7f08ko8Q7mKnWIY5iQi5xxhrxWStAGKtZIHWsPlyrNkvW+n1GXY4dbFTrjRzChFyj/Fho62gWCtZpDlsosGa/RKR9xl2xBFyN0CRiDyXECH3GD9R8PlRPlkUyhYt7U5ELtZK3xGLGhGPL3aKZZhLeCbkSimfUup9pdTTXr1nPuLH8ch9ErlkCzcibwnLv22fYUfAl5xWK1eauYSXEfl1wCoP3y//iMXwEwMrgLLEWskWLY5H3h6N9fNIPkLEOlR2SoCSU3gi5EqpkcA5wD1evF/e4kQp2heMWysxEXLPcSNxEfI+xE0/lDzynMSriPw24Eag078spdS1SqmFSqmFtbW1Hn1sjuE0ElK+AJYTuUSj0lzIa1yP3I5poraIeZ9gRx1rxZ94LOQMvRZypdS5QI3WetGBztNa3621nq21nl1dXd3bj81JtO1G5AGU3xHyiETkXqK1pjkcJeBTAIRFyPuGWEQi8hzGi4j8ROB8pdQm4GHgNKXUXz1437wjEjZZFMqX8MhjURFyLwnbMWIaygpNO9Ww2Ct9Qzz9UIQ8F+m1kGutb9Zaj9RajwUuBl7RWl/a65HlIdFIkrXi96ccE7whYpu2wKUF5t9XfPI+Ik3IJUDJJSSP3ENsJyLHF8Tym4gxJg34PcX1xItDJg1OIvI+wrVWpNdKTuL38s201q8Br3n5nvlExIm+LX8Ay9lJxY7IJaiXuJ54cdCNyEVQ+gQ3IldO7CfWSk4hEbmH2FHXIw/ic6wVWyJyT4k61kpJyPz7tkUkIu8T3MpOpYy9Imm1OYUIuYe4frjlS0TkstjpLZG4tWKEXLJW+gi3aRYYQZeIPKcQIfcQNyLHH8QKBJxjIuRe4i52ukLeLhF53+BaK2AicvHIcwpPPfKPOrYTkfv8ie6HMSkI8pRozPXIncVOicizT8wGdKLzoeWTrJUcQ4TcQ1zRtvxBcCJyLV6ip0SiHSNyiQyzjjuH3Y6ePrFWcg0Rcg+JJWWtEPfIZcJ7ScSJyEvEI+873AV7Z04ba0XmdS4hQu4hthOR+wIhfEEn/VCyVjwl2sEjl6yVPsAVbSvJI5deKzmFCLmHaGdh0/IF8AckayUbRDoUBEUkIs8+Ha0VichzDsla8RA3a8UXDBEMipBnA1e4i5yCIBHyPsBd2EyOyEXIcwoRcg9xFzZ9/iDBYAiQfuReE08/DEqJfp8Rj8iTPXKZ17mECLmHxOIeeZBgQLofZgO310qRLHb2HXEhdyJyn3jkuYYIuYe4EbnfHyIU8BHWPkk/9JhIzETkRRKR9x1xa8VNPwwmMlmEnECE3EO0G5EHg4QCFjYi5F4TcYQ75LfwW0o88r4gLSIXIc81RMg9xBXtQCBI0GcRwUdMLkE9xa3s9PssAj5LIvK+oGP6oS8oTbNyDBFyL7ETeeR+n0UUn0QuHuMudgZ8ioBPxR8LWSReECQRea4iQu4hbkQedHLIbXxoSdPyFNdKCVgWQb9PdgjqC8RayXlEyL3EjhDWPvx+sxBnK1nd9xq3stPvUwR94pH3CR3zyH0BEfIcQ4TcS+wIUfz4LbPDu410ifMaN90w4LMI+sUj7xPcYMSt7PSHRMhzDBFyL7EjRPAR8Jl/1pjySQWcx0TjHrlZ7JSIvA/o2DTLFwBpz5xTiJB7iIpFiODH50bkyo8SIfeUaCyGUuCzlETkfUWatSIeea4hQu4lsTDRpD5ktpJSZq8J27H4FU/AZ0llZ18Qt1ZcIQ9J+mGOIULuISoWNSmHDlr5ULIllqdEbU3AueIJ+sVa6RPSKjtlsTPXECH3EGVHiKpERB4Ta8VzonaMgN9M26AUBPUNaR55EOz2/huPkIYIuYcoHcVOslZiVgBLyyWol4Rtjd9yhNxvSUFQX5BmrQRBx2QD5hxChNxDrFg4NSK3AvhjcgnqJVE7RsBnrJWAT0lE3hd0tFb8TmQu9krOIELuIVYsahY4HWwriF8ick+JJC12Bv0+8cj7gkyVnQBRsVdyBRFyD7FiEWwViD/WIuSeE4lp/EkRuZTo9wGxDhtLuLeSuZIziJB7iNKpEXnMJ0LuNVE7RsDxyEOStdI32Bn6kYNYKzmECLmH+GKRFCHXVpAAIuReErE1Ab8bkUseeZ9gR4yIK/PvLkKee4iQe4ilo8SShdwXIiARuadE7Fg8ayXgs+IbTQhZJBZJVHVCwisXIc8ZRMg9xKejxJInvN9E5FpLipxXRG1N0JdIP5SIvA+wownxBtM0C0TIcwgRcg/xdYjI8QUJESUaEyH3iogdS1rsNHnk8kWZZexwqpCLtZJziJB7iE9H0FaSkPtDhFSE9ogUTniFyVpJLHYCEpVnm86sFemAmDOIkHuIT9sp6Yf4CwBob2/rpxENPCLRGMGk9ENAqjuzTUdrRSLynEOE3EP8pEYuyvESI2ERcq+IxhKLna5XLtWdWSYW6SDkrkcuC/m5Qq+FXCk1Sin1qlJqpVLqA6XUdV4MLB/xaTtlsdMV8nBba38NacARtZMKghxrRXLJs4wdlqyVHMd/8FMOShT4ptZ6sVKqFFiklHpRa73Sg/fOK/xEUzxyK2CEPCoRuWeE7Vgia0Ui8r7BjiTsFEiyVqREP1fodUSutd6ptV7s3N8PrAJG9PZ98xE/UXTSJagr5GHxyD0jOSIPymJn32BHOkk/FGslV/DUI1dKjQVmAQsyPHetUmqhUmphbW2tlx+bG2hNkGjKJajlLHbaERFyr4jGkppm+cRa6RPS0g/FWsk1PBNypVQJ8Bhwvda6sePzWuu7tdaztdazq6urvfrY3MHpzZwakZtL0GhYLkG9IhxN3erNPSZkkVg0s7Ui3Q9zBk+EXCkVwIj4g1rrf3rxnnmHG50kReS+gInIYxKRe0Y0pvFbqdaKRORZxg4nGmaBdD/MQbzIWlHAn4BVWutbez+kPKVjq0/A5zTgt6VwwjMiSVu9uRG5tLLNMp0udsq8zhW8iMhPBC4DTlNKLXF+Pu7B++YV2hVrX3JEbiZ8TITcE7TWpvthWkQuBUFZpeNip2St5By9Tj/UWr8BKA/GktdEImGCgEoW8nhELpegXmA7PWv8kn7Yt3S62CnzOleQyk6PsCMmOkkWcr+TfigRuTe4kXcgqfshiJBnnVgHa0Up81islZxBhNwjomHXWknyyIPmvhYh94RIzAi222OlIGCmb5s0JcsudoemWeAIuUTkuYIIuUdEnVQsy58UkfvFI/eSaIeIvCDgA6AtKkKeVTp65GAeS/phziBC7hHRSHpE7g8aa0VL5OIJbpqhW9lZ4HeEPCLWSlbp6JGDWCs5hgi5R8QcIbf8CSEPuB65THhPcIXc3Xy5ICjWSp/QsSAITAdECVByBhFyj4hG04XcH3A9cpnwXhBf7HQ2Xw76LJQSIc86HQuCwETokn6YM4iQe0SmrBU3j1wuQb0h6lorTkSulKIw4KM1LEKeNbROLwgCR8glQMkVRMg9IuZE3ckRuSvqMZnwnpBIP0yULRQEfLLYmU1iNqDTPXIrYCwXISfwoh+5QCIi9/nTS5nVABByrTW1+9tRSjG4JIjpzNC3xD1yXyL+MBG5LHZmDTu9Ytk89ktEnkOIkHuEG3X7nAVOIJF7m8cTflNdM//71Ae8vrYWp7CSc48Yxm2fnRmvsOwrojE3ayXxuaGAJRF5NsnQQyj+OJa/83qgIdaKR8Qi6XnkWD5iqLyd8Lsa2ph363zmr6mlujTxBfX0sp3M+smLzF/Tt33lM1orfh9t4pFnDzcI6VgQZIlHnktIRO4RGSNypYjiy9sJf8M/lmDHNN875zCunjue5vYoQb/Fk0t28OsXPuSL977L106dyLfOmtIn48lorQTFI88q7tzNZK2EW/p+PEJGJCL3CO3kkfv8qRM+ih+Vh4tCdkyzcNNeSgv8XHb8GACKQ34CPouLjhrJs9fN5cSJVdw1fz11TX2ThuZWdrr9yMGU6UvWShbpzCO3Anl7pTkQESH3CB1zhDw5Igds5UflYfrh4i17CdsxbrlwGiGngjKZyuIgPzp/KtGY5on3t/fJmMKdLXZKZWf2cIOQTB65nX8BykBFhNwj3PRDtwjIxcafd5GL1prfvryW4qCP0w8b2ul5E4eUMnNUOf9YuBWts98TvGOvFYCioJ+WsAhK1ojvfNWxICj/5vVARoTcI7SdOSKPqvxL09pY18zra+v4yqkTKQ4deBnl07NHsmZ3E0u27sv6uBJZKwlrpTjkp7ldhDxr2Ok9hABnsTP/rjQHKiLkXuFG5MHUCR+z8k/IV+/aD8DJkw++SfZ5M4ZTURTgKw8u5kPnddnC7TseTIrIS0I+mkTIs4drn2TqfijWSs4gQu4RbofDgD81Io+p/FsUWr2zEUvBxCElBz13UEGA751zODsb2jjrtv9w35sb2d2Ync2mo/EdglIj8rZILF6+L3hMpwVB+TevBzKSfugVdpiYVgQCqRNeW35UJL8m/Kpd+xlfXRLv930wPnnkCEb49vGtvy/kR/9ayZ/e2MgzX59LWVHg4C/uBtEMi50ljvXTHLYpK8z/uGT7vlYeXbiNrXtbCPktTpgwmOPGV1JVEjr4i7NBZwVBkkeeUwxYIf/ty2u59cU1nD31EO667Kisf562I0TwpUSLADEriC+WX17i6l2NzBhZfvATtQalUEpx3LNn8Uaoia9NeoXnPtjNTf9cxu8vOdLTUv6wu9hpJQTb9fBbwlHKCr394uhLtNa8+mENV96/MOX4gwu2EPRZPHvdHCYOKe37gcUXOyUiz2XyP4TpQGvY5raX1nDri2sAeP6DXXzx3nd5a11ddj84FiGCPyVaBNC+IL48mvC7G9vYWt/KYcMGHfjESCv8Zhr8cR40bIdwEwC/q7+WF4bdzVsr1nHLM6s8HVvUTl/sLAqaq4Z8XvDcvq+V43/2SlzEf/bJ6Tzz33O46KiRfPOMyYTtGLe9tLZ/BteZR56Haz89oqUeWvf29ygOyoCKyPc2hzn79v+wuzG1QGX+mlrmr6nlpRtO7pLv2yPsCFF8FKYJeQg/+7FjGp/V942mustTS3YA8PHpww584rJ/QOM28/Obw82xodNg9womso7vjJrBD94qZe6kwZwyZYgnY2t3FjtD/nRrpak9f4uCHlqwhV3OusJtn53JhbNGAPDrT88AYH97lLv/s4HTDt3GJ48c2beD69QjH6B7dmptOj76/PDOXfD8d8zx838HI2fDkMP6d3ydMKCE/LevrGV3YzsXzBzOxUePZuqIQXzn0WVUFgd5cMEW3l5flzUhV05E3lGstS9IkAitETsuOrnMgo17mFBdzLjBxZ2ftOUd+Nd/px//rzdg1zL4+6VcNGgVf4mezn8/9D7PXjeXkRVFvR5bOBrDUqlNs1xrJR8j8r3NYebdOp/65jCnTqnmxxdMY1Rl+r/TDWdMZsX2Br71yFKGlxdy3Piqvhtkp02zHGvFsdcGDK//Gl65Jf34U18zt195JyfFfMBYK5vqmvnL25v53DGjuP3iWRw/oYpBBQHuvPQobrlwGtWlIb7/5AfZKyePmYg8DX+IEJG8KFrRWrN4yz5mja5If/KF78LDl0B7E7z1/6CoCr62EC68E868BW7caP6gh82AUccSrP2AP3z2UKbptVz/8BJPCobao3ZalWkiIs/9f99k7Jjmivvfo745zNFjK7jz0qMyijiYnut//MJshg4q4HevrOvjgbpNszoEIa5nHsvfK6EUIq2w/NGEiFsBOPkmuGlr6nmrnzZ2ywdPwM6lfT7Mzsj9ELGLPLFkO7bWfOP0yWnPKaW47Lgx3PriGt7fso8zDu+8WrHH2BGipC+2KX8BQaJ50Q+krilMfXOYqcM7+OMbXoO3f2fu/8xc9nP812DwJPPTkUOmw/JHGH3XRP6mYNbmu9i8ZwZjDxTld4FwNEbQnxp7HCgib2iJ8NTS7Ty7fBcnTKji2pPHZ2w30B88/v52lmzdx/WnT+L6DHO2I8Xb3+Az08u4460aWsJRioJ99KfbWUGQz/n8WCRxPx9p3AGBIljwB3jtp+bYvB/AUVdAUaV5fM6t8MwN5v4rt6RG7N+vS7ed+oEBE5Gv2N7IT0sfY8grN0AsPaf4yjnjAJMjnQ2UHcFW6SKh/EFCKkJLHgj5hlqzYDm+Osl+0hr+dR0UDU49+bTvd/5GUz8JI4+JP5xpreeFD3b1enzt0ViKPw5QHMq82Pnyqt3M+PG/+f6TH/D2hj3834truPeNTb0eQ2/RWvPdx5fzrUeWMqQ0xLUnjT/wC6LtsPF1eOACLtn9a6IxzeLN+/pkrEBS98MMvVYg/6s7f3sk/GIMvPdHGDwZrl8OJ16fEHGA2VfCf70Jc25If33Nyj4b6oEYEEIei2m2bd3I58KPwZIHYc1z5vIniZKQnwnVxby8uiYrfUFULEJUZYjIAwWOtZIHQl7XDMD45Mi5ZiXs3WSilB/UmwXNOd+AQEHnb1Q+Cq76N1y/HK18nF+xmZ89t5oXV+7u1fgyReSdLXa+vjaRpTT/26dwzLhK/vbuZmKx7PeEORBPLtlhUgr9Fo99+YSDR9ZP3wB/PheAwfuWUlrg5zuPLeMfC7ce+HVe0Vkb2/imKRksrf274NGroKlv+9V3m4btEG0195trzRwvHw1Wh4BMKThkGpz0Lbj0n3DdUrhumXluyzt9O+ZOGBBCvnjLXia1LEkcePjzcOth8ObtKeddM3c8S7bu4943N3k+BisWwc7gkfsCBWaxM5OQv3ILPPgZz8fSU5Zu3UdpgZ8R5YWJg7s/MLejjjUT/Mtvwuk/PPibKQXlo1Hj5nJB7GXOCCzl6WU7ejW+TBF5YcCHUqStQdQ1tRPwKe67/GjGVBVz2XFj2Frfyp/e2NirMfSGlnCUW55ZxcxR5az68dmdeuJx9u+CJX+NP7Qizdx0xjh27WvixkeXsnZ3dlsiAEmLnRn6kSc/n8xTX4cVj5qAKpdZ83zi/shj4LDzDnx+sBgmzoOKsVAxxkTwz92Y+BvpRwaEkD+1dAcn+lejQ6Xw6fth7FwTSbz4A/jrRfHzPnv0KE6ZUs1tL67xfPFR6Sh2x6IJXCGP0hrJIOT/+RWsfQHCzZ6OpSdorXl7wx6OGVuJ5Wbe7NsC/7zG3K8c17M3nvMNrPB+/uj7BVNW/57t+1p7PMb2aIxgB49bKUVx0J+22FnX1M4RI8s59VCT+vjx6cM4dlwlf3x9Q590aszErf9eQ11TO98757CDp6K27oU/ngb+Aph0lllQbmvgkrU3sL7gMjYVXMJTL72a/UF3WhDkWCvRDMkDdaaGg4Zt2RtXb3npR8b3HjYDblgNlz3e/fc4wcncWvGYt2PrAXkv5JvfeoQvLb6Qi62XUKOPh6mfgMufhmudSb7uRWjdB5g/+itPHMf+9ijvbqzv/E17gBWLEFPpl8m+oGOttHeIXJLEZP/6BZ6OpSe8vKqGzXtaOGvaIeaS+I5j4bbpiRP8PSwRH38KfGcTTaNO4Sv8g+vueISa/T3rxRK20yNyMD55R498T1OYwSUJX9dnKT515Ehq9rezZndTjz6/p+xpaueWp1dyzxsb+dwxo5g9tvLgL1r2D2jcDl98Gi75h1lcBtj0evyUptWv9OqLsUt0VhAUcK7aIh0+P9xiAgCAun4qYjoYq5+FN24194//OgwaBqEepCUfeRkMnwWr/gU1q1L+pvuavBPytojN955Yzt/f28I5v/wXg164nkLVRsPUS+GkbydOHDbDrDYDbH4zfvjosZUEfRZvelzpqWJR7AweuT9YgKU0be2pkUt4X8Jm+HBZ/wp5Q0uEnz23ijFVRXwq8jT8eiLUrjZPHnMtXNLLiCNYTMln7iZmBXg08nUW3/YZFm7c0+23aY/YaR45uK1sU6946praGdyhP8nR44yALtnad5V6H+7azzE/fZl73tjIYcMGcd28g2eoALDjfSgZCqOONo+VMlF5URVc9gR2qIyp1ha+8uBi7Gz6/nYYlJXuGwecdZRIh6vJPetAO8kG+zZnb1w9JdxsrB+A834L0y868PkHY/pnzBXI749L0Zm+Ju+EfP6aWv76zha+89hyZjW8TIVqouGTD1P26Ttg1DGpJ8/8vMl/3ZboX1EY9DF7bEXKYpgX+HTEtKztgD9oFgXb21Kj0F3bN8Xv27u9LWXvDrGY5puPLGF9bTM/uWAavoV/Sj3h7J/DpNN7/0GlQ7EcD/Jsez4/++MD3V547CwiLwmlWisRO8belkiakI+pLKIk5GfJ1oYe/ALdY+Gmer7y4CL+5/Hl2DHNfZcfzXPXzeWQsgMsErtsfhuWPmTSOJM54etw4waYcCq+4TOYV1HD0q37+Os7WRRMO5yesQIQdPz9jhG5W85eNhr2925x21O0hoX3wcs/gZY6uPLfcNQXe1/MdNyX4RN3m/v96JXnlZD/c/E2vvSXRfHHFxUtIVY5gXHTT8z8gkChybJ441ZY+vf44bmTqlm9az9b9ni3eaylo6ZlbcchhMwlaKTDRrXtjTXx+0WN6z0bR1dpDds89O4W7n1zIy+tquG48ZWcNL7M+JpHX2PyY/9nR3ok1hvm/QDtpDHOUmt5ZXXNQV6QSnuka0Je32x83cGlqUJuWYo5EwfzyMKt3P7SWhZt9j4y39nQyu7GNr784GKeXb6LdTVNXH7C2LhXf1Aad8B9Z5v7c77R+XmHHEF501qOHTOIH/7rA7bWZ2kj5Fg03R+HRETecQPmNudLsnoKNO2C5jpYcHfGlOA+ZesCePp6WHCnsftGH+vN+yoFRzgJC8/dmHnNoA/IKyF3/0ABRhdFmGEvxzrs3AN/qx5+gbl9/Nr4ouIFM4cD8PTy3mVRJOPTUfQBIvJwW2rkEm401sLq4DRGRTay69U/wMqnPBvPgdBa861HlnLzP5dzyzOrCPktbvvsLHM5H22FcScZTzTYuwKeNCrHoW5cjx40gjkFG7n6gYXcNb/rX2JhOz39EKCiKMjelsTcqN1v/piqS9IjyZ99cjpTDinlNy+t4VN3vsWtL67h5n8up81ZjF5f29SjxVCtNa+uruH4n73CsT99mYaWCD+5YCqLvnc6Pzx/atffKDmTYuyczs875AhUtI2vTbfRGr5w77vxjTc8xQ5nLniJR+QdrJV2p06jeor5Enjkcnju27D5De/H1lW2vAMPXWzuj51rLCovSdafdS95+95dJK9Ksq6eO54LZ42gKOgjuPIx1BNROPQgKUPHfcUsRCz/h6lQPPQchpcXMrKikJU7vCsO8ukosQyRi3IWCSPhVCG3m4y10zLsGMo3r4D5N5onblhtFl88pq6pnQUb6ikt8LNk6z6eWb6TquIg5UUBbr94FofsXQj//JKxosac4PnnJ6MmncnJi+5norqQnz8HV5w4loitD9qLJlOJPpiNoJO/5N02DB2tFYCK4iB3fP5IfvXChzyzfCe/fdksyD307pbE+BRcdtwYBhUEOGFiFX95ezOjK4vY0xxm/ppahpcVUBzy85MLpzGhuoRXV9dwxf3vxV8/qMDPw9cez+EdK2S7gpt7fcXzBz7PiSjn+ldz16UX8F9/XcwTS7bzmdmjuv+ZByLannmh213s7DQiP9Tcuouz6142AUJfE4vB418yls/HfgnHfik7n/Pp+82X1upnYMrH+7z/jCdCrpQ6G7gd8AH3aK1/7sX7ZmJwScj0d1h8H5QcAiMO0ms8UAAX/M70SNgwHw49B4ApQ0tZ62H2gl9H0JkuQZ0/gmh7qkeuW/Zga8W46XNg873x47HNb2NN/2SXP7emsY3Vu/ZzUoZt2Zrbo1z/9yVsqG1ifW1q5DR+cDH/viiEf+E9sHOD8Q4Ly+HSx6B4cNp7ecqcb6AW3cd3Dq3lmlUjmfK95wn4FDNGlnP13PGcPe2QjC8LR2Mp27y5VBQHaWiNELVj+H0WdU2OtdLJZgxjBxdzxyVHctGHNTy6aBsFfh+PLd7G6MoittS3oDU88LbxnX/3anpvEzfin/d/81Eqkaxw5OhyrpwzjnOmD+t5H/Z9W6B0GIw5/sDnVYw1ecxv38GZF5/ItBGDuPHRZcz/sJaffmK6d5t62JHMHnl8sTOTkCs47FzTWM1d+NzTxz1iwHzJ1K0xBW0X3mnWzLLF1E/Aa78wBYkF5XD2T7P3WRnotZArpXzAHcAZwDbgPaXUU1rr7NWubngVtrwNZ/8CrC64Q/6QaUG5LRE1HTqslPlramlsizCooPeT3qftzELuTPhoe6qQWq31NFBM8RHnYVt3cvV7w7hrx0UsfvMljs8g5A0tEX4/fx3XzB3Pgg31FId8LNy0l/vf2kRTe5TpI8o4YWIVzyzbSchvcc70Yfzt3a0pTcIqigL89BPTWbWjgUsGr8F//2XmiRWPmttz/s/4h9mmfDQUD+GMjb/iD4feyL3tp/HepnoWbt7Lws2LuGbuOL57zuFpL2vPUNkJUFUcRGtoaI1QVRJih5OSV12aWchdTp0yhFOdFrtfPXUCo5MKdCK25t8rd3Hdw0uYO2kwn5k9iqqSIBOHlFDT2M6X/rKI7fta0Rq+fdYUvnD8GIqC6d0vD0osBssfgQmnmnn64bOZ+9dk4sI74aGLse49kz9fs4i7FzVwz+sbeWb5Tu6/4mhOmlSdqAnoKXb7gRc7O9ZAtDVAaBAUVsD5/w+e/Kr5/96/s3fj6C4rn4LH/yth/fTFvL7oT/DXT8E7d5grJtfW7QO8iMiPAdZprTcAKKUeBi4AvBfy2jVwx9GJx935hh02wyy62BHwBTjt0KHc8ep6XllVE+//3Bv8RDM3D3J85nBLqo1jtTeyn2Iqg0E48vP8aaZm088nENi9BDumsRTsamzjpseWM39NotT5mWU72bY3PXd4+fYGlm9PZGP81umS96Pzp/KZ2aP498pdnDBhMNXbX+Jj634CbzuZMufdbv7w1jwPk8/u7T9D11AK5t4Az9/EWZt+yVk3/zeEStm2t4U5v3iVP76+ka+dOiktqmyL2BQG062VimIjNPXNYapKQizcvJfJQ0viDbW6Qkp/GcDvgwtmjmDaiDIGF4dSxjKktIAfXzCV1bv2c+1J49M2E+kSzXWwc4mxHN75vRHLo66A1no4/qtde4+Rs+Gi++DP51K1bwU3f+xMigJ+fvPSGi6/7z1OmlzN7z4/q3eBSjSc2Vrxu3nkGSLygjJzf9alJlJ99kZY/3LPx9BVtIbti0wa4Is/SBw/+TswaHj2P3/oVBh9PHzwT/jHF+DbG6C4b1oOeyHkI4Dkxg/bgLQlYaXUtcC1AKNHj+7ZJ73+68T9odOgoBse5LCZJrqo/RAOmcasUeUUBCyu//sSSkJ+jptQRZGzR2VPohgfUbAyRS6ukKeWU1uR/bSoxGKiZSn8I49kyvonmPg/T6M7rEOfPLma+Wtq4yL+kwunURLy8Y2/m1aa//n2qXy4ez/jBhdz02PL+MYZkwn5rXjxyQUzR5gCjYeTvvw+9kuY8Tnzhzqt63aOJxz3ZWjZY6pb7z4FzrmVkcNm8ODVx3LJPQt4e8OeFIslFtO0RWIZ9xGtLEoIuR3TLN68N76g3VsmdBB4l3mHDWXeYT3sorlrBdzVIdNK+eDdP0DZKDjs/K6/1zCz+QQ7l8DkM7nu9EkcM66SP72xgVdW13D8T19m4tBSJg8p4aKjRnKs08u8LWLT0Bph6KCDpEN2FpFbluka2DEib92XEHIw83/QcNNuwAmissbSh+CJLycef22hGWNZ7wO1LnP01UbIARb/2QSbxdXeZn9loM8WO7XWdwN3A8yePbtnFQzn/db0QyiqglHHde+1hxxhbnctg0OmYVmKq+aM445X13P1A4k882PGVvLAVcfw9LKd7GsJM7aqmDfW1XHejGEcNabziryAjnayum+EINqa6sf7Ik20+lOzQkZNOxG14SGOLKpjjT2cc2cMJ+S3+MqpExhSWsB/1tTy+Pvb+fIpE5g8tJTGNlMtevTYCkZXFTG6ylzuPvrlDouV0XazEPPhs4ljF9xhIqb+5KjLYclDxj994HyY/DGO+vSDKAWrdjamCLm7O1BRhoi80onI97aEWbWzkab2KEd3pXqyP4i0wpNfST321fdM06alD8HMS7q3UFYwCKompvTGPn5CFcdPqOLeNzby8HtbWLp1H0u37uORRds4YmQZllIs2bqPoN/ip5+YTlvE5pfPr+bRL5/A5KEd9gV18shjMZ0e4ASK0vPIW+rSo9CKsYCG+o1Q3cWCqK7QsM3YpWPnGivn7TsSz132RNctKi8ZeyL8sMG0Bnn5R+YnUGSayA2dlrVFUC+EfDuQvFQ+0jnmPYGCgze26YyqCcav3rEkbsl884wp1DS288iiRE+IdzfVc+j30zMG7n9rE7/57Aw+MSt9qy2tNX7sToTciLUON8UX4wCC0WYa/am5xcpZuH3s/AJiR5yZ9odz0uTqlEXNQQUBHrrmOCYPLTGd3EqGmsWW4TNNtNveZC51925KFfGP/7r/RRygbCTc8IHpe/HGrbDmOQp0G6Mri1hXm/rF5/aqKcwUkTtCvqc5zB4ne+WoMRk2x+hv6tbCvWeZ/xuAY75kikgGTzICN7aTeoiDMWwGbEmvDr5yzjiunDOOXQ1tHPczY20s25aw38LRGN96JPEFcOZv/gMYOy5ix1hX08TX6xpox89p//Ms8w4dwjfPnEIoYPHAW5v4RjSAb38DrvTXN4cpb64jNmgUV937Lpv2NPPF48dyauVkxgF6+yLW2MMYUVFIScgfT/NUSvGfNbXsaW5n/OASorEYDa0R1tU08fB7W/n+uYebtYzNb5nMqqtfMouov8mQ1jnvf83VnptV01986h6492yoXWXsp7vmZDVrxgshfw+YpJQahxHwi4EsLg/3EMtnKuWSIhfLUvz8U0fwkwunEfRZWJbiF8+v5oMdjRw+bBBnTh1K3f52Irbmq39bzN/f25pRyKO2TUDZqExC7vRwKKKN+pYwQ0rNpWzQbiFW2CH6qZ5ivmy2LsCa+bku/VrHr/kVvPEBbPzPgU88ZLrZii1mZ/0yr9uc9n2Trvb4tfDT4Xyt4hoKNm2HZ0ca33jo4fEmZylC7mwzVlFs/t33NocJ29psVNSVCsq+Yv2rJmtqzQsmDe6C3xsryyuxGXGUadxUtw4GT0x7+pCyAt797jx8SlFeFCRix6hvDrNjXyurdjays6GN37+WyOf/36cSFYqfC+6nXpt5+vLqGl5OKuK6JGixbuUWvnLTMwT9FuFojKWhGp7c08L8sFnX+fHTK7mFGMtDId566TmuqTN26IkTq1hf04ytdTwLKJnBNDDd2sCm2AyuuO89rjhhDD9YdzWqcbvJ1e7YB3zcyaYz4dFX97+Ig8kA+9J82Ls5sa636M8msDviYs834+j1u2mto0qprwEvYNIP79Va939fx0wMnwmLH0gRM5+l8CUJ23fOPjTjSxdtHhfvZ90xUo6E2wgA2p9BPJyslSLaqNufEPJC3YzuWHBj+WDSGbDySfj4r0xO95K/mUnhpE3Gidkmmltw54F/5zNvMRsTuBF4rok4GL91+qdh9wp467d8eu8fzfF3gXfvhtAgBpeN40u+wxncXgaMMrUBf70IzvgRoekXURLyU98coS1qU1kUTNnXs1+pWwcPXmSKY8DYALMu8fYzpl1kFveW/s301M6AO+8AfJaP4eWFDC8vjK+hXHrcGFrCNm+tr2NDbTM7G1q58sRxTHuukJd2mS/Ke74wm5U7G3ntwxouPmY0xa8Momh/O0G/xaCCAC1trZSpZvbGSvnheYfT2BblhQ92UVEUZPW28ZzR9CTHqCPYUjqLN9ftYWRFIZUFQUJN29imq7nj80fiU5opS39O1a7XGdS0gZrhp/FYzXCOW/gOynIu9F1rauonTP52/cbMfcT7G3/IXGl96k/w2FVQ84HJ4gkUwrRPeftRXryJ1vpZ4NmDntjfjDgKFtxlfPLhs7r10klDS2iLxNi+rzWtj3TEqdpUmRaFfH5ivhDF0Xb2NJvIw45pinQrKtNi7ZSPw8onzGX4xvnw/E3m+E1bTfn2htfMhK1ZCQsT+ed88h4jFuEmePZb5tiX/mMuu0/4erd+137BsuDMn8DsK/jwr99kYa3F5+dORa18AvZtpqBmKTcHlsJLD0HdJcZCAvMH8v5fuN0fJbppPDvVENYVzTRXKKNPMP9Wq582TcDmfqt7HmVLvbHLQqUHP7cj4WZ48NOmg6HlN21SF/0ZTrm5++91MEqHmiuaXct7/BbDnR70aZuTx8LMPXQCj805gaPGVHD64UP573mO97xiMCMG26y58mNorWnftxNuh6+feyzWsabtcfzcp0+Ahav4R+gncMMW2t79M/4pZ8GO9/E/eR16yOGoBUWmaGjdn+MfP2THK3wZwILVsVGUHfFxhq34g/m/Pc/Zb6CnLZb7iukXwZSPmVqNirFmBy2PyavKzl4z7mRzu/7Vbgu5m73ww6c+4E+XH53yXKTdWfDpZNccHSimqL0tntPdsL+JShXFyiTkQx3fb8dimP+LxPGfH6Bi79rXUn+fY67J393NK8fz+qz/45ZnVnHunDMpO/PHsPkt1q9dxYQ3nK22XBE/73azDd2G15gHsMeUgV8O8GdgxudNvvN795jzF/8FLnn0wAtua1809scRn4FfjoOqSfD1henn7d8NL9xsrpTm/8pEhg1bzRzzBUxvD7cb3lFXGIHKZmVj9aHmM73GbqeosCjzmkOgyPRTwfjcBW2mWtkqzdBX5uQbjVe89CH4+WgKAF75vklcAJRrlWxP+rc+K1FUs7lmL59/ewK/m3UGw+Z9xawH5YKF0lWCxfCxrNVJfsSEvHQoDJ0O618xeczd4IiRJqVqxY70znlhR8hVJ0KuQiWUNLdSt98sxO2pr6USKCgpTz958CQTwT3p5BK7l2UuRVWm29oHjyd2jykfk+FD81DEHSqKElkoZUUBGHMC29on8YU2H69W/YJg8w4YM8dkvWx+C1Y/w68rf8Cwfe/THNEcV7iNI4YVGavBZeYlpkjkgQtM5erwmUZ0S4aa9LrRx5ovvwedtqZVE8ztnrXmM8acYOysN35jRHPZw6YPtbupwO87acI061KTx5xthhxmCrva9/fsCqIz7Aj4M1xpgvmSTC7RdzeSKMsQdJQeYhbZlz6Uetxd+AU49XvQ6LxHoNi0UHbWnWo31VP/9ttEbe1kwQjJfLSEHGDiafD2782kK0tfuAQSNddJYlgQ8HHN3HH85Z3NaK1TSrCjTh8Vq5PNF1TpUIbt3ctr2xtYuaORtl2bAAhVZpjw/hCcdCO8eZtJmTz8QnNp9ubtsOh++PwjZkFr0ulw8rdNQUlRjqba9ZD44mVLmLGYdYTWsM12qln3mVc4/PWvm8wEgPN/Bxf8ntrHV/K7Teb/8yenT+WII0rhtzPNmsOFdxkxGneyWVDdv8PYa4sfSHzoERcn8n/B7M7jct/HTOHN0ofNjk4uh51nxBzMF2zLHrNl2LZ3E+dckJQSl02GHGZuaz80hUJeEe0kjxyM2Ea6KORgFv6Lh0BzjbEXGrbBjM/Cin+aYOTkb2d+HcTXPKL93UUxR/noCflRl5sKzz+dZXYRKhkC2xebP8JJZ5hz7plnLqmnnA2v/Rw++1cYPImqkhBtkRgtYTulajAaNn1UrM4i8rJRjA++w1NLd/DU0h3cMGw5RwIlh6RnGABwynfMTzInXmd+kqkYC0dfxUCj3InI97UkdlVyuxMWFg+CSx9NnOxEi1VJnQ5PnjwEiovgmx8mSsnBiMbWd0yUecgRZs/UcXNNBOtGisESs84A5ktz0DCTOvboFYn3+fivYcyJMPRwEwFDahRc+yHccUyiWKcvcJtUbZyfLuRNNVBYaTZ6cK80uoodBl8nrQ4ChR2EfIs590C9eq59DfZuTO3sePTVBx2G30kwiNr9u3l2rvLRE/LK8fDFp+DP55moq2Rowpe74jkYPMWU+W5fZC6fARb8Ac75dTxfub45nFHIO7NWKB/FEP00hw4pZnVNM201GyAAFSP7oWAhD0iu1HRpcTavLghkzkZxG2RZCkZVOt5psCj9xHN/k7h/7LXmVmvTnkApmHgGvPxjOPG/E2XdlzwGDzpZBh27U2ayMQZPNv5udyo0e0vFWDN3X/0ZDJlq5vmSvyY2IK8+NLHr06zLTKre9sVmgflA2OGuWytu9siBbL2yET2qtPT7HCHP5m5IecxHT8jB7CR04e/hqevMApXLAxfCMKcCNFRmJnBzLbz3R9j2HqNnmcWKuqb2lMyVmGOt+DoT8rJRKDvMc1dN5AuPbmf0xt3soYyq4rLM53/ESfbIXZqcPU9LO+kb4kbkE6pLut95UCmYemHiccdFqUmnw7XzTeOnrrQYVqrr/VK8wvKZzJg/nAQPfTb9eVfEAd7/i/kBmHxW533PtT5IRF5sSvjddN6aVYnFeo/xO83xIrZYK5nIkWTbfmDap+D6ZXDlC/CNlXDjRjMJt71nopvvbIRvrzN+NcDOJYzf/AiQGikC2BGTjWIFOxHyYTMBUNsXMWlIKaNVDTV+73uODxRKC/xYKtVaaWyNYikozlCiD3DK5CFcNWccd156kLbGPWX4TJNClsuUjYCvvZeoGRh3ssnScVMei6vNAmIy959j0iQzYTvzvLP+KPEOiE0m3XLvxoRX7zEBn1grB+KjGZG7FFXC6KSeLVe/bFK4SoYkigtOvtF45y/+L2W73gbmxXucuNhOvwl/p0I+w3SL27KAGaNmM3phDavVVLIz5fMfy1JUFAWpT4rIG9siDCoMdBptlxUF+P656a1vP3IUVZoF1uRF1klnmIKr0CAoqTZ1BTtNzyFunwFr/w2NGa423G3LOlnEp9Q5f98WswuPjiVSfD3GXezM6kbTecxHNyLPhGWZhv7JC0K+gLFiRh1NcN86LGLsb4umvCzmeOS+zvJa/UGTVlj3Icf61zFS1bG/0OOdXAYY5UUB9iULeWuE0oKPdtzRK6omGBEH42Mfdq658rz2NXNs6zvpr7GdgKUza2XoNHO7e6XZGaf6sJ73izkI7mJnRLJWMiJC3lUqx6PsMMPYQ2NrakQec6yVQOgA/T0qx8O6lzjk0fNpDVUz9zPXdX6uYPbhbE6yVtqinmwAInSgcry5dVMHk7HdiLyTxc6qCSY1ce2/Ta79uLnZGSOStXIwRMi7ijPhJwZq0iJyHTEReafWStLrAQq/8A8Gj/SwnecApKI4dUPlxlZvdnISOlBQZiyXTELuWiud5ZH7AqbR24pHjegf+cWsDdO1VmSxMzMi5F3FqSabGKinsaOQR10hP0DJsOvFDzkcRhyZjREOKCqKAilCvr8tyqBCsVayQtnITiJy11rpRMghYa9UTTKee5ZwFzvFI8+MCHlXKR0GKEb796YtdrqXoIHQAYR80plw6nfh3NuyNsSBREVRkL0tkXjPaq/2VhUyMGj4QayVA+x9esh0c3sgsfcAdy9UySPPjIQ4XcUXgJKhDI/Wp1kruB55wQGEXCmTASN0ifKiIOFojNaITVHQb6yVQhHyrFA8BGpWpx+PuumHBxDpkceY2/07vB9XEgHJIz8gEpF3h0HDGUp92mKnjrYT04pg4MC7tgtdp9Lpt1LfHCZqx2gO2xKRZ4uSalP4pjtEu3YXhNwtoJud3VYRlqWwlFgrnSEReXcYNJzBdSvY39ZRyNsI4yeUYRsyoWck91spDpppKh55liiuNjZKe2PqxsldsVb8Ifju7gOf4xF+n0VEslYyIhF5dygspyS2P32xM9JGmGD3S8OFTkku03fXJCQizxLFTn55c13q8bi1chCRDhT0Sdtkv6WIirWSERHy7lBYQaHdlBaREw0TViIyXlIZb2UbobHVfHGKR54lXCFvqkk97kbknZXo9zF+S8liZyeIkHeHgnICut1E4NGkyMBuI6qyu2r/UcO1VvY2J0fkYq1khcJyc9vemHrc9cj7wDbpCgGfJf3IO0GEvDs4E34QzSlRuYq2i5B7THlhYnMJd3FZIvIsEXRa8bq91V26krXSh/h9Sio7O0GEvDsUlANQpppTUhCVHca2RGS8xO+zGFTgZ19LJBGRi5BnB7enelpE3oXFzj7Eb8liZ2eIkHcHJyIvozmlKMiKtWNbuTHZBxIVxUHqm8MJj1yslewQ6iQi70plZx/i9ymxVjpBhLw7FJidxMtUMw2tyUIexs6RyT6QKC8KxrNWTC9yEfKsECwGFLQ3pR4/WK+VPkYWOztH/jK6Q1JEvqcp0QfEHwujLdntx2uGlobYWNdM4+AIpQUBLEvSO7OCUiYqT4vIc8taCfgstu9t5bnlO/t7KL3iqLEVDCk9QIO9HiBC3h2SPPK6pvb4YX8sjM6RyT6QGFNVxPw1tUwdPkiKgbJNRiF3rjpzZP2nsjjIW+v38OUHF/f3UHrF/VcczZApIuT9h1P1Vmm1UOdE5Fpr/DpCTITcc0ZXFdMejbGutkmKgbJNsATCHbNW2o2IW7nhwN79hdls29ty8BNznJEVGTYF7yUi5N3B54dgKUPtVt5zIvK2SIwQYVpFyD1nbJWZ8Cu2N3L8+Kp+Hs0AJ1NEHmlJ7MuZA5SE/Bx6yKD+HkZOkhtftflEYTmD/W1xa6U5HCWkIlh+by+VBDh8WOKPVrZ5yzKhknQhDzeZSF3IeUTIu0tBORWqOb7De0u7TZAoSjofek5VSYiioGlENnW4LCZnlVBpetZKuNnJaBFyHRHy7lJYziDVHK82bGqPUkAYX0Ai8mzwqSNHAjB38uB+HskAJzQoQ0QuQp4vyPVqdykoo1Rvi+eRt7S1U6jCWCG5BM0GPzx/KhcdNZIZo8r7eygDm2Ama6VFrJU8QSLy7lJYTpHdRGOb2YasrcVMfquwtJ8HNjDxWUpEvC8IlZqsleTNJcJNEMidxU6hc0TIu0thBQX2fiK2pjViE24x/Sn8BbKaLuQxoVLQMZOp4iLWSt4gQt5dCsoJxNoIEqGhNUK4pQGAQJEIuZDHuNZgsr0iQp43iJB3l+TGWa1Roq1m4ouQC3lNyJm/aUIuHnk+0CshV0r9Sim1Wim1TCn1uFKq3KNx5S5Omf4g1Ux9c5iIY60UFouQC3lMx1a2WkOkOacKgoTO6W1E/iIwTWt9BLAGuLn3Q8pxnIi8nCazw3urmfhBiciFfMYJUGjdZ27tMMSiYq3kCb0Scq31v7XW7g4L7wAjez+kHCeplW1dUzvRNudSNChZK0IeU2jmNa17zW242dyKtZIXeOmRXwk819mTSqlrlVILlVILa2trPfzYPsaNyFUze5raibU51XCSRy7kM2lC7sxricjzgoMKuVLqJaXUigw/FySd810gCjzY2ftore/WWs/WWs+urq72ZvT9gXMJOizURl1zOGnCi5ALeUxcyPeZ23hELkKeDxy0slNrffqBnldKXQ6cC8zTWg/87TucVrZDA+2s3d+OcoVcCieEfMYfNMFIPCJ38skDIuT5QK9K9JVSZwM3AidrrfO/UXBXcFrZVgda2NMcxoo002YVUpAjPZsFoccUVoi1kqf0Vn1+B5QCLyqlliil7vJgTLlPYTmVVit1Te1YkWYiPpnswgCgsBxa6819sVbyil5F5FrriV4NJK8oKKe8rZnNe1ooDLRgy+WnMBBIicglayWfED+gJxSWU6rNpWcxbTLZhYFBRmtF1n7yARHynlBQRpE2EUuxapMWtsLAoLAyIeRu8yyxVvICEfKeUFBGoZ2IyAOFUtUpDADciFzrxG5BYhvmBSLkPaGgjGDUVHQW00pBiWxDJgwACitMWX64CdoajGXok71n8gER8p5QUIYKN3HdaeMYVhhFibUiDASSqzvbGxIdEYWcR4S8JzhFQd84cSgF4X1QVNW/4xEEL3CFvKUe2hpBNkvJG0TIe4Ij5OzbBNqG4jxuOSAILkWV5rZ1r7FWCsQyzBdEyHuCO8H3bDC3RbLDuzAAiFsr9aYvuVgreYMIeU8odCKXug/NbbFYK8IAoDA5IhdrJZ8QIe8Jrideu9p5LBG5MACIe+SOtSIRed4gQt4Tih3hrl3jPBaPXBgAxDsg1otHnmeIkPeEgnJQvoS1IlkrwkChsAL2bYFYJBGwCDmPCHlPsKzECn+ozEQygjAQKKyAurXmvgQoeYMIeU9xfXFZ6BQGEoUVsEeEPN8QIe8pZc4+0+KPCwOJokrQMee+WCv5ggh5T6kYY25lsgsDCTdzBRL2oZDziJD3FH+BuXUjc0EYCBQmibdcbeYNIuQ9ZaKzJ/VRl/frMATBU9yIvLASpBlc3iA9KnvKhFPhB/Vg+fp7JILgHYMnm9uSIf07DqFbiJD3BhFxYaAx6QyY978w6pj+HonQDUTIBUFIoBTMvaG/RyF0E/HIBUEQ8hwRckEQhDxHhFwQBCHPESEXBEHIc0TIBUEQ8hwRckEQhDxHhFwQBCHPESEXBEHIc5TWuu8/VKlaYHMPXz4YqPNwOH1NPo8/n8cOMv7+JJ/HDrkz/jFa67RuZv0i5L1BKbVQaz27v8fRU/J5/Pk8dpDx9yf5PHbI/fGLtSIIgpDniJALgiDkOfko5Hf39wB6ST6PP5/HDjL+/iSfxw45Pv6888gFQRCEVPIxIhcEQRCSECEXBEHIc/JKyJVSZyulPlRKrVNK3dTf4+mIUupepVSNUmpF0rFKpdSLSqm1zm2Fc1wppX7r/C7LlFJH9t/I42MdpZR6VSm1Uin1gVLqOud4zv8OSqkCpdS7Sqmlzth/5Bwfp5Ra4Izx70qpoHM85Dxe5zw/tr/GnoxSyqeUel8p9bTzOG/Gr5TapJRarpRaopRa6BzL+bnjjKdcKfWoUmq1UmqVUur4fBk75JGQK6V8wB3Ax4DDgc8ppQ7v31GlcT9wdodjNwEva60nAS87j8H8HpOcn2uBO/tojAciCnxTa304cBzwVeffOB9+h3bgNK31DGAmcLZS6jjgF8BvtNYTgb3AVc75VwF7neO/cc7LBa4DViU9zrfxn6q1npmUc50PcwfgduB5rfWhwAzM/0G+jB201nnxAxwPvJD0+Gbg5v4eV4ZxjgVWJD3+EBjm3B8GfOjc/wPwuUzn5coP8CRwRr79DkARsBg4FlON5+84h4AXgOOd+37nPNXP4x6JEYzTgKcBlWfj3wQM7nAs5+cOUAZs7Pjvlw9jd3/yJiIHRgBbkx5vc47lOkO11jud+7uAoc79nP59nEv1WcAC8uR3cGyJJUAN8CKwHtintY46pySPLz525/kGoKpPB5zObcCNQMx5XEV+jV8D/1ZKLVJKXescy4e5Mw6oBe5zbK17lFLF5MfYgTyyVgYC2nx953y+p1KqBHgMuF5r3Zj8XC7/DlprW2s9ExPZHgMc2r8j6jpKqXOBGq31ov4eSy+Yo7U+EmM9fFUpdVLykzk8d/zAkcCdWutZQDMJGwXI6bED+SXk24FRSY9HOsdynd1KqWEAzm2Nczwnfx+lVAAj4g9qrf/pHM6r30FrvQ94FWNFlCul/M5TyeOLj915vgzY07cjTeFE4Hyl1CbgYYy9cjv5M3601tud2xrgccyXaT7MnW3ANq31Aufxoxhhz4exA/kl5O8Bk5xV/CBwMfBUP4+pKzwFfNG5/0WM7+we/4KzAn4c0JB0GdcvKKUU8Cdgldb61qSncv53UEpVK6XKnfuFGG9/FUbQL3JO6zh293e6CHjFibr6Ba31zVrrkVrrsZi5/YrW+hLyZPxKqWKlVKl7HzgTWEEezB2t9S5gq1JqinNoHrCSPBh7nP406HuwKPFxYA3G+/xuf48nw/geAnYCEcy3/FUY3/JlYC3wElDpnKswWTjrgeXA7BwY/xzM5eMyYInz8/F8+B2AI4D3nbGvAH7gHB8PvAusAx4BQs7xAufxOuf58f3975/0u5wCPJ1P43fGudT5+cD9+8yHueOMZyaw0Jk/TwAV+TJ2rbWU6AuCIOQ7+WStCIIgCBkQIRcEQchzRMgFQRDyHBFyQRCEPEeEXBAEIc8RIRcEQchzRMgFQRDynP8P7Z88pU2Km5QAAAAASUVORK5CYII=\n"},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","source":"###### Creating Numpy Arrays\nnp.savez_compressed('X_train_va_PTB_Baseline.npz',np.array(X_train_va))\nnp.savez_compressed('y_va_PTB_Baseline.npz',np.array(y_va))\nnp.savez_compressed('X_dev_va_PTB_Baseline.npz',np.array(X_dev_va))\n\n##### Loading Dataset\nX_train_va = np.array(np.load('./X_train_va_PTB_Baseline.npz',allow_pickle=True)['arr_0'],dtype=np.float16)\nX_dev_va = np.array(np.load('./X_dev_va_PTB_Baseline.npz',allow_pickle=True)['arr_0'],dtype=np.float16)\ny_va = np.load('./y_va_PTB_Baseline.npz',allow_pickle=True)['arr_0']\n\n##### Converting Labels to Categorical Format\ny_va_ohot = tf.keras.utils.to_categorical(y_va)","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:53:25.323243Z","iopub.execute_input":"2021-09-02T17:53:25.323625Z","iopub.status.idle":"2021-09-02T17:53:25.338965Z","shell.execute_reply.started":"2021-09-02T17:53:25.323594Z","shell.execute_reply":"2021-09-02T17:53:25.337952Z"},"trusted":true},"execution_count":11,"outputs":[]},{"cell_type":"code","source":"###### Extracting Embeddings\nwith tpu_strategy.scope():     \n\n    def normalisation_layer(x):   \n        return(tf.math.l2_normalize(x, axis=1, epsilon=1e-12))\n\n    #X_dev_flipped = tf.image.flip_up_down(X_dev)  \n    #x_train_flipped = tf.image.flip_up_down(X_train_final)\n\n    predictive_model = tf.keras.models.Model(inputs=model.input,outputs=model.layers[-3].output)\n    predictive_model.compile(tf.keras.optimizers.Adam(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])\n\nwith tpu_strategy.scope():\n    y_in = tf.keras.layers.Input((5,))\n\n    Input_Layer = tf.keras.layers.Input((640,1))\n    op_1 = predictive_model([Input_Layer,y_in])\n\n    ##Input_Layer_Flipped = tf.keras.layers.Input((224,224,3))\n    ##op_2 = predictive_model([Input_Layer_Flipped,y_in]) \n    ##final_op = tf.keras.layers.Concatenate(axis=1)(op_1)\n\n    final_norm_op = tf.keras.layers.Lambda(normalisation_layer)(op_1)\n\n    testing_model = tf.keras.models.Model(inputs=[Input_Layer,y_in],outputs=final_norm_op)\n    testing_model.compile(tf.keras.optimizers.Adam(lr=1e-4),loss='categorical_crossentropy',metrics=['accuracy'])\n\n##### Nearest Neighbor Classification\nfrom sklearn.neighbors import KNeighborsClassifier\nTest_Embeddings = testing_model.predict((X_dev_va,y_va_ohot)) # Session-2 Embeddings\nTrain_Embeddings = testing_model.predict((X_train_va,y_va_ohot)) # Session-1 Embeddings\n\ncol_mean = np.nanmean(Test_Embeddings, axis=0)\ninds = np.where(np.isnan(Test_Embeddings))\n#print(inds)\nTest_Embeddings[inds] = np.take(col_mean, inds[1])\n\ncol_mean = np.nanmean(Train_Embeddings, axis=0)\ninds = np.where(np.isnan(Train_Embeddings))\n#print(inds)\nTrain_Embeddings[inds] = np.take(col_mean, inds[1])","metadata":{"execution":{"iopub.status.busy":"2021-09-02T15:58:45.214657Z","iopub.execute_input":"2021-09-02T15:58:45.215031Z","iopub.status.idle":"2021-09-02T15:58:50.80816Z","shell.execute_reply.started":"2021-09-02T15:58:45.215Z","shell.execute_reply":"2021-09-02T15:58:50.806947Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"###### Full Embedding Creation\nEmbeddings = np.array(list(Test_Embeddings)+list(Train_Embeddings))\ny_va_full = np.array(list(y_va)+list(y_va+5))\nprint(y_va_full)","metadata":{"execution":{"iopub.status.busy":"2021-09-02T15:58:51.44729Z","iopub.execute_input":"2021-09-02T15:58:51.447808Z","iopub.status.idle":"2021-09-02T15:58:51.453996Z","shell.execute_reply.started":"2021-09-02T15:58:51.447775Z","shell.execute_reply":"2021-09-02T15:58:51.453124Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"###### t-SNE Plotting \n\n##### Testing Dataset - Session 2\n#### Reduction to Lower Dimensions\ntsne_X_dev_va = TSNE(n_components=2,perplexity=30,learning_rate=10,n_iter=2000,n_iter_without_progress=50).fit_transform(Embeddings)\n\n#### Plotting\nj = 0 # Index for rotating legend\nplt.rcParams[\"figure.figsize\"] = [24,12]\nmStyles = ['o','o','o','o','o','s','s','s','s','s'] # Sqaure Session 1 data while Circle Session 2\nfor idx,color_index,marker_type in zip(list(np.arange(10)),['blue','green','orange','red','pink','blue','green','orange','red','pink'],mStyles):\n    plt.scatter(tsne_X_dev_va[y_va_full == idx, 0], tsne_X_dev_va[y_va_full == idx, 1],marker=marker_type,color=color_index,linewidths=4)\nplt.legend([str(j) for j in range(5)])\nplt.legend([str(j-5) for j in range(5,10)])\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2021-09-02T15:58:56.580992Z","iopub.execute_input":"2021-09-02T15:58:56.581505Z","iopub.status.idle":"2021-09-02T15:58:57.271966Z","shell.execute_reply.started":"2021-09-02T15:58:56.581471Z","shell.execute_reply":"2021-09-02T15:58:57.271132Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Spectogram Analysis","metadata":{}},{"cell_type":"code","source":"###### Plotting Spectograms\n\n##### Iterrating Over the Variability Analysis Dataset \nfor i in range(0,25,5):\n    \n    print('+++++++++++++++++++++++++++++++++++++++')\n    print('Training Set')\n    sig_spectogram,_,_,im = plt.specgram(X_train_va[i][:,0],500) # Generating Spectogram\n    plt.show()\n\n    print('Testing Set')\n    sig_spectogram,_,_,im = plt.specgram(X_dev_va[i][:,0],500) # Generating Spectogram\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2021-09-02T17:53:38.854855Z","iopub.execute_input":"2021-09-02T17:53:38.855286Z","iopub.status.idle":"2021-09-02T17:53:40.358996Z","shell.execute_reply.started":"2021-09-02T17:53:38.855252Z","shell.execute_reply":"2021-09-02T17:53:40.358015Z"},"trusted":true},"execution_count":12,"outputs":[{"name":"stdout","text":"+++++++++++++++++++++++++++++++++++++++\nTraining Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"Testing Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"+++++++++++++++++++++++++++++++++++++++\nTraining Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"Testing Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"+++++++++++++++++++++++++++++++++++++++\nTraining Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"Testing Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"+++++++++++++++++++++++++++++++++++++++\nTraining Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"Testing Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"+++++++++++++++++++++++++++++++++++++++\nTraining Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}},{"name":"stdout","text":"Testing Set\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{"needs_background":"light"}}]}]}